webForumDet fria alternativet

Alternativ till joins med sub-select kriterier?

Databaser & SQL

1 svar · 369 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Jag behöver göra frågor mot en jobbig databasstruktur som tvingar mig till sub-select kriterier i joins vilket segar ned frågorna. Det ser ungefär ut så här:

SELECT *
FROM X
	INNER JOIN Y ON
		Y.Z = (SELECT MAX(subY.Z) FROM Y AS SubY WHERE SubY.Identifier = Y.Identifier)
	INNER JOIN Y2 ON
		Y2.Z = (SELECT MAX(subY2.Z) FROM Y2 AS SubY2 WHERE SubY2.Identifier = Y2.Identifier)

Finns det något smart sätt att bli av med sådana här sub-select kriterier?

Medlem sedan aug. 20039 340 inlägg
#2

Har Y/Y2 alls någon relation till X?

En subselect med order och limit kanske?

SELECT *
FROM X
	INNER JOIN (
		SELECT * FROM Y as SubY
		WHERE /* Placera kopplingen mot X här */
		ORDER BY SubY.Z DESC
		LIMIT 1
		) OuterY ON 1
	INNER JOIN (
		SELECT * FROM Y2 as SubY2
		WHERE /* Placera kopplingen mot X här */
		ORDER BY SubY2.Z DESC
		LIMIT 1
		) OuterY2 ON 1
260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)