kaepten: Suche Hilfe bei SQL-Statement

Beitrag lesen

Dann wäre es wesentlich einfacher, wenn du uns deinen bisherigen Code mal postest.

Mach ich.

Mein Programmablauf:

1.

Alle Dokumente holen, die in mindestens einer der gesuchten Gruppe ist:

SELECT DISTINCT Document.Id FROM Document INNER JOIN  DocumentDocumentGroup ON Document.Id = DocumentDocumentGroup.Document_Id_Fk INNER JOIN DocumentGroup ON DocumentDocumentGroup.DocumentGroup_Id_Fk = DocumentGroup.Id
WHERE     (DocumentGroup.Id IN (Gruppe1,Gruppe2))

2.

LOOP : Nun im Loop Für jedes mit 1. gefundene DokumentId:

a. --> SQL Abfrage, alle Gruppen des Dokumentes mit ID xy ermitteln

SELECT d.Id, dg.DocumentGroup_Id_Fk FROM Document d INNER JOIN DocumentDocumentGroup dg ON d.Id = dg.Document_Id_Fk
WHERE (d.Id = "+ Loop-current-Dokument-id +")

b. --> Ich prüfe die Resultatmenge von a, ob meine zwei erforderlichen Gruppen enthalten sind. Wenn ja dann speichere ich die Id des Dokument in eine Liste DokumentIdListe. Diese Liste beinhaltet am Ende des Loop alle Id's der Dokumente die in beiden Gruppen sind.

<< Loop ENDE

3.

Für jedes Dokument in der DokumentIDListe hole ich schlussendlich die kompletten Daten der Dokumente. Die Id's aus der Liste DokumentIdListe füge zu einem IN (sqlIn) zusammen:

a. --> SELECT d.* FROM Document d WHERE d.Id IN (Dokument1)

Jetzt wo ich das so tippe *kopfschüttel* das kann doch nicht so komplex sein, das ist doch overkill!

kaepten