Ich versuche, Daten mit einer einzigen Abfrage, aber ich kann nicht bekommen, was ich will. Ich habe 3 Tabellen: Ich möchte alle Fotos Daten mit ihren max Schritt (ID und Name). Wenn sie es nicht haben, ist ein Nullwert in Ordnung.SQL - Hilfe linke Join Abfrage
Photo table
photo_id | photo_name
---------------------
1 | A
2 | B
3 | C
4 | D
5 | E
Steps table
step_id | step_name
----------------------
1 | AAA
2 | BBB
3 | CCC
4 | DDD
photoStep table
id | photo_id | step_id
----------------------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 3 | 1
5 | 5 | 1
Das Ergebnis, das ich haben möchte, ist, dass
photo_id | photo_name | step_id | step_name
-------------------------------------------
1 | A | 3 | CCC
2 | B | NULL | NULL
3 | C | 1 | AAA
4 | D | NULL | NULL
5 | E | 1 | AAA
ich diese Abfrage habe versucht, aber es fehlt etwas, weil zu viele Linien:
SELECT * FROM photo p
LEFT JOIN photoStep ps ON ps.photo_id=p.photo_id
ich habe diese Art von Ergebnissen:
photo_id | photo_name | step_id | step_name
-------------------------------------------
1 | A | 1 | AAA
1 | A | 2 | BBB
1 | A | 3 | CCC
2 | B | NULL | NULL
3 | C | 1 | AAA
4 | D | NULL | NULL
5 | E | 1 | AAA
Jede Hilfe wird sehr geschätzt. Danke im Voraus.
Diese Art von Problem ist "Max in der Gruppe" genannt. Google das und Sie finden viele verschiedene Ansätze zur Lösung Ihres Problems. –