PDA

Vollstndige Version anzeigen : Bentige dringend Hilfe bei SQL-Abfrage


nightflasher
19-03-2004, 10:43
Hallo,

ich bentige dringend einmal Hilfe bei einer SQL-Abfrage:

Ich habe 3 Tabellen.

In der ersten Tabelle "kunden" stehen alle Kunden mit ID.
In der zweiten Tabelle "response" steht ggf. ein Response.
In der dritten Tabelle "ap" stehen die Ansprechpartner.

Das Problem ist, das ich alle Kunden anzeigen lassen mchte,
dessen ID nicht in der Tabelle "response" steht. Also
alle Kunden, bei denen noch nichts eingegeben wurde.

Eigentlich mit einer LEFT JOIN Abfrage kein Problem.

Das eigentliche Problem ist, das in der Tabelle "kunden" ein
Kunde ggf. mehrmals drin steht. Pro Ansprechpartner ein Datensatz.
Diese haben zwar alle die selbe Kundennummer aber unterschiedliche ID's.

Wenn nun ein Response eingegeben wird, erscheint die ID des Datensatzes in der Responsetabelle.

Wenn ich nun eine LEFT JOIN Abfrage druchfhre, dann erhalte ich diesen Kundendatensatz zwar nicht, aber dafr vielleicht zwei andere, weil dort noch Ansprechpartner existieren.

Die Tabellen sind leider vom System her vorgegeben und ich kann Sie
nicht verndern... (Leider)


Modell (verkrzt):

"kunden"
ID NUMMER NAME
1 455 Max Mustermann AG
2 455 Max Mustermann AG
3 455 Max Mustermann AG
4 255 Hellmann AG
5 255 Hellmann AG

"response"
ID KUNDENID ART
1 2 Kontakt

Kunde 455 hat also 3 Ansprechpartner. Mit einem wurde gesprochen.
Ich will jetzt mit einer Abfrage (oder 2) erreichen, das
ich nur noch Kunde 255 ausgeworfen bekomme...

DANKE AN ALLE DIE SICH GEDANKEN MACHEN ODER LSUNGEN HABEN.

Helge

Marilu
19-03-2004, 10:47
So was hnliches hatten wir letzt:

http://www.selfphp3.de/forum/showthread.php?s=&threadid=7185

nightflasher
19-03-2004, 10:56
Danke fr die schnelle Antwort.

Nur leider ist die dort beschriebene Abfrage die gleich, die
ich bisher nutzte.

Mein Problem ist, dass ich in einer Tabelle Datenstze habe, die
aufgrund einer Kennung zusammengehren aber unterschiedliche ID's
haben. Da nur diese ID in einer anderen Tabelle steht, ist das Problem, das dann auch nur der passende Datensatz aus der ersten Tabelle "rausfliegen" wrde. Es soll aber das Zusammenhngende Paket nicht angezeigt werden.

siehe Beispiel oben.

Gru,
Helge

Marilu
19-03-2004, 14:21
> Die Tabellen sind leider vom System her vorgegeben und ich kann Sie
nicht verndern... (Leider)

Wahrscheinlich habt Ihr den, der das gebaut hat, erschossen.

Auf die Schnelle fllt mir nur ein Lsungsansatz ein:

1. Erstellen einer temporren Tabelle aus "kunden", in der die IDs und Namen der Kunden stehen, die auch in "response" sind.

2. Abfrage aus "kunden" : Alle Kunden, die nicht in der temporren Tabelle sind, Anzeige: GROUP BY / ORDER BY Name oder Nr.

MiH
24-03-2004, 09:35
SELECT k.*,
FROM kunden k
LEFT JOIN response r on r.kundenid = k.id
WHERE r.kundenid is null
group by k.nummer order by k.nummer asc