vandamp
Erfahrenes Mitglied
ja hmm welche Variante besser ist kann ich nicht sagen müsstest du mal auf den Explainplan schauen, aber denke die Join Version ist "besser".
hab dir noch ein paar Farben hinzugefügt und alles auf id_firma = 117 beschränkt.
hab dir noch ein paar Farben hinzugefügt und alles auf id_firma = 117 beschränkt.
SQL:
SELECT
a.id_firma,
a.autos,
p.preis,
n.navy,
r.red,
b.black,
s.silver
FROM( SELECT
id_firma,
COUNT(DISTINCT id_auto) AS autos
FROM test
WHERE id_firma = 117
GROUP BY
id_firma
) a
JOIN(
SELECT
id_firma,
COUNT(DISTINCT id_auto_preis) AS preis
FROM test
WHERE id_firma = 117
GROUP BY
id_firma
)p on p.id_firma = a.id_firma
LEFT JOIN(
SELECT
id_firma,
MAX(color='n') AS navy
FROM test
WHERE id_firma = 117
GROUP BY
id_firma
) n on n.id_firma = a.id_firma
LEFT JOIN(
SELECT
id_firma,
MAX(color='r') AS red
FROM test
WHERE id_firma = 117
GROUP BY
id_firma
) r on r.id_firma = a.id_firma
LEFT JOIN(
SELECT
id_firma,
MAX(color='b') AS black
FROM test
WHERE id_firma = 117
GROUP BY
id_firma
) b on b.id_firma = a.id_firma
LEFT JOIN(
SELECT
id_firma,
MAX(color='s') AS silver
FROM test
WHERE id_firma = 117
GROUP BY
id_firma
) s on s.id_firma = a.id_firma
Zuletzt bearbeitet von einem Moderator: