Einzelnen Beitrag anzeigen

BlueStarHH
Online

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#1

Master-Datail-Join soll jeden Master-Datensatz nur ein mal anzeigen

  Alt 27. Mär 2017, 12:11
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
Ich habe 2 Tabellen: Master und Detail, die über ein ID-Feld verknüpft sind. Ich möchte nun alle Master-Datensätze haben, zu denen es mindestens einen Detaildatensatz gibt, der im Feld Text das Wort %Test% enthält.

Ich habe dazu zunächst beide Tabelle mit einem Join über ID verbunden. Das hat dazu geführt, dass der selbe Master-Datensatz öfter im Ergebnis zurückgegeben wird, wenn er mehrere Detaildatensätze hat, die %Test% enthalten. Damit die Master-Datensätze nicht mehrfach im Ergebnis enthalten sind, habe ich das "group by" für alle meine 22! Felder hinzugefügt. Ist das richtig/schön so? Gibt es eine bessere/schnellere Möglichkeit?

Hier der Code in kurzer Form:

Code:
select m.id, m.feld2, m.feld3, m.feld4 from Master m
join Detail d on m.id = d.id
where d.text like '%Test%'
group by 1,2,3,4
  Mit Zitat antworten Zitat