Seite 1 von 1

Nur ersten Datensatz eines JOIN

Verfasst: Di 5. Jul 2022, 09:46
von Groffy
Hallo,

ich habe folgendes Szenario :

Tabelle AUFTRAG:

Code: Alles auswählen

BIGINT ID
TIMESTAMP DATE
Tabelle INFORMATIONEN:

Code: Alles auswählen

BIGINT ID
BIGINT AUFTRAG_ID
VARCHAR(64) INFOTEXT

Ich möchte alle Aufträge haben zu denen eine bestimmte Information hinterlegt ist, allerdings gibt es Fälle, bei denen zu einem Auftrag die Information mehrfach hinterlegt ist, weshalb im Ergebnis bestimmte Aufträge mehrfach enthalten sind. Ich brauche aber jede Auftrags ID nur einmal. Mein Abfrage:

Code: Alles auswählen

select ID, DATE,
(select List(INFOTEXT, '|') from INFORMATIONEN where I.AUFTRAG_ID=A.ID) as INFO
from AUFTRAG A
join INFORMATIONEN I on (I.AUFTRAG_ID=A.ID)
where I.INFOTEXT containing :FILTERTEXT
order by A.DATE
Ich hatte Beispiele gefunden in denen im JOIN eine Art von Subselect enthalten war, aber ich bekomme es nicht hin.

https://stackoverflow.com/questions/204 ... -first-row

Wenn ich den etwas ungewöhnlichen subselect(select List()) für die Infofelder weglasse, kann ich es mit einem DISTINCT lösen...

Beste Grüße - Ulrich

Re: Nur ersten Datensatz eines JOIN

Verfasst: Di 5. Jul 2022, 15:04
von bfuerchau
Left Join (
select first 1 .....
from ...
where ...

) hogo on 1=1