Kalle_: Kniffliges SQL- Problem

Beitrag lesen

Hallöle,

normalerweise tauscht man sich ja mit Kollegen aus, wenn es mit dem eigenen Wissen klemmt. Doch leider - ich bin allein mit meinem Projekt.

Schwierige SQL-Anweisungen über mehrere Tabellen sind sonst NICHT mein täglich Brot, das Training fehlt also. Habt ihr sicher schon gemerkt in den letzten Tagen.

Das Projekt führt Aussteller und Besucher einer Fachmesse zusammen, findet Gesprächstermine. Besucherfirmen können mehrere Mitarbeiter (1..n) schicken:
table adressen:
id firma nr mitarbeiter kz
-- ----- -- ----------- --
01 ABC   01 Meyer        2  2=Besucher
57 ABC   02 Mueller      2
78 DEF   01 Gerhard      2
83 XYZ   01 NN           1  1=Aussteller

Aussteller XYZ moechte mit Firma ABC sprechen, es wird ein Kontaktsatz angelegt mit Switch Priorität 3:
table kontakte
id besucher_id aussteller_id prio_1 prio_2 prio_3 // prio_1/2=Besucher-Wunsch, prio_3=Aussteller-Wunsch
-- ----------- ------------- ------ ------ ------
11          01            83      0      0      1

Da dem Aussteller wurscht ist, mit WELCHEM Mitarbeiter der Besucherfirma er spricht, müssen also alle weiteren Mitarbeiter der Firma "ABC" auch einen Kontaktsatz bekommen. Diese Forderung kam nachträglich. Das möchte ich in einer Unterroutine automatisch lösen.
Also müssen Kontaktsätze mit prio_3=1 auch für die "Nebenmänner" INSERT werden, sofern sie noch nicht da sind oder UPDATE werden, wenn bereits prio_1 oder _2 gesetzt ist:

id besucher_id aussteller_id prio_1 prio_2 prio_3
-- ----------- ------------- ------ ------ ------
18          57            83      ?      ?      1 // Satz mit prio_1/2 könnte schon da sein!

Ich muss also gezielt DIE Sätze finden, die FEHLEN.
Vorgehen in etwa: Finde Hauptmänner (nr < 2) mit prio_3 und ihre Nebenmänner (nr>1), denen prio_3 fehlt (NULL oder 0).

Bitte um Hilfestellung.

LG Kalle