Kalle_B: MySQL: Knifflige Gruppenabfrage

Beitrag lesen

Hallöle,

habe diesen Beitrag mit meinem Editor vor-geschrieben.
Das winzige Eingabefenster hier bricht Zeilen, die ich in Gesamtlänge benötige.
Web-Designer scheinen abzustammen von Briefmarken-Designern.
Aber das ist eine andere Baustelle.

Mein Problem: GRUPPENABFRAGE

Mir fehlt die richtige SQL- Idee. Vielleicht hilft mir schon die Formulierung hier.
Habe sie mehrfach überarbeitet. Also los ...

BASISINFORMATION:

Für eine Fachmesse gibt es -BESUCHERGRUPPEN-:

  • Baumann(1807) und Kübler(1808) wollen BEIDE GEMEINSAM zu Opel(1532), also gleicher Termin.

es gibt -EINER-GRUPPEN-:

  • Gruppenmitglied Baumann(1807) will zu Ford(1586), sein Kollege Kübler aber nicht.

und es gibt -EINZELBESUCHER-:

  • Schröder(4711) will zu A.T.U.(1530), hat keine Kollegen.

Für Gruppenmitglieder gibt es

TABELLE "gruppen":
 id
---
114

TABELLE "besucher_zu_gruppen":
id adress_id gruppen_id
-- --------- ----------
74      1807        114  <== Besucher Baumann
95      1808        114  <== Besucher Kübler

Die Gesprächswünsche sind hier:

TABELLE "kontakte":
id besucher_id gruppen_id aussteller_id slot_nr
-- ----------- ---------- ------------- -------
01        1807        114          1532       0 <== mit 1808 zu 1532
02        1807        114          1586       0 <== Gruppenmitglied 1807 allein
03        1808        114          1532       0 <== mit 1807 zu 1532
04        1808        114          1575       0 <== Gruppenmitglied 1808 allein
05        4711          0          1530       0 <== Einzelbesucher Schröder (keine Gruppe)

Die SQL-Abfrage mit besucher_id - aussteller_id soll je nach Input folgenden Output liefern:

Input:  1807 - 1532
Output: 114, 1807 Baumann, 1532, Opel, ...
        114, 1808 Kübler, 1532, Opel, ...

Input:  1808 - 1532
Output: 114, 1807 Baumann, 1532, Opel, ...
        114, 1808 Kübler, 1532, Opel, ...

Input:  1807 - 1586
Output: 114, 1807 Baumann, 1586, Ford, ...

Input:  4711 - 1530
Output: 0, 4711, Schröder, 1530, A.T.U., ...

Bisher brauche ich dafür 1..3 Abfragen. Wenn die erste kein Ergebnis bringt, formuliere ich die nächste.

Lieben Gruß aus dem Sonnigen Odenwald, Kalle