1:n Tabelle, Abfrage auf ein Feld beschränken

DrMueller

Erfahrenes Mitglied
Hallo Leute,
das Problem ist etwas merkwürdig zu erklären, vorallem da ich sicher bin, dass es eine einfache Lösung dazu gibt.
Folgendes:
2 Tabellen, nenen wir sie T1 und T2.
Die ID von T1 kann x mal in T2 vorkommen.
Nun möchte ich eine Liste von T1-IDs, welche in T2 vorkommen, aber nur einmal.

Das Problem ist, wenn ich mit join oder select in arbeite, dass, sobald eine ID in T2 mehrmals vorhanden ist, diese dann auch mehrmals angezeigt wird.

Wenn also z.B. in T2 ID1 3 mal vorhanden ist, erscheint bei der Abfrage dann auch 3 mal ID1.

Gibt es einen Trick, wie man die einzelnen Datensätze nur einmal bekommt?


Btw: Das Forum ist sehr langsam, auf Firefox gar nicht mehr benutzbar und auf IE gehts gerade so. Liegt das an mir?
 
Ich habe distinct auch probiert, das Problem ist jedoch, dass ich wegen der relativ langen Join-Klausel jede menge Felder habe. So wird distinct ja ignoriert.
Hier mal mein SQL-Befehl, wobei alles auf den Wert Akt.Aktid geht:

SELECT distinct akt.aktid, ress.RID, ress.RName, ressReserv.Aktid as ressAktid, ressReserv.RID, ressreserv.ResStartDate, ressreserv.ResEndDate, ressreserv.ResStartTime, ressreserv.ResEndTime, akt.aktscomment, akt.AktPContact, akt.AktProject, akt.RecType, aktadr.aktid as adrAktID, AktAdr.AktAdr, aktadr.AktCID, contact.CTitle, contact.CFirstName, contact.CLastName, contact.CPhone, project.pid, project.PName, address.name1, address.anr, address.MainPhone, address.CityPhone FROM akt
inner join ressreserv on akt.aktid = ressreserv.aktid
inner join ress on ress.rid = ressreserv.rid left outer join aktadr on akt.aktid = aktadr.aktid
left outer join contact on aktadr.aktcid = contact.cid
left outer join project on akt.aktproject = project.pid
left outer join cproject on project.pid = cproject.id
left outer join address on aktadr.AktAdr = address.anr
WHERE ResEndDate <= {d '2009-04-27'} AND ResStartDate >= {d '2009-04-01'} ORDER BY ResStartDate ASC
 
Hm mittlerweile habe ich rausgefunden, dass DistinctRow wohl die Lösung wäre, aber anscheinend unterstützt unser benutztes SQL dies gar nicht.
Gibts da eine Alternative zu Distinctrow?


ach keine Lust mehr zu suchen, habs per Code gemacht. Für das nächste mal wäre eine Alternative natürlich trotzdem interessant.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück