Hallo,
ich habe folgendes Problem.
Ich habe 3 Tabellen:
tabelle_a enthält alle Kunden mit Kundennummer etc. (geschlossener Kundenkreis)
tabelle_b enthält die Bestellung(en) der Kunden aus Geschäftsbereich A also Kundennummer, Artikelnummer
tabelle_c enthält die Bestellung(en) der Kunden aus Geschäftsbereich B also Kundennummer, Artikelnummer
Ich möchte nun eine SQL-Abfrage basteln die mir die Anzahl der Kunden zurück gibt, die mind. eine Bestellung - egal ob tabelle_b (Geschäftsbereich A) oder tabelle_c (Geschäftsbereich B) - geordert haben.
Das folgende SQL-Statement funktioniert zwar, ist aber wahrscheinlich dennoch sehr schlecht gemacht. Das geht doch bestimmt viel einfacher und schneller, oder?
Diese Abfrage liefert mir zwar wie gesagt das gewünschte Resultat, aber wenn ich ein paar hundert Bestellungen in der Tabelle habe dauert die SQL-Abfrage ziemlich lange.
Vielen Dank schon mal
Denny
ich habe folgendes Problem.
Ich habe 3 Tabellen:
tabelle_a enthält alle Kunden mit Kundennummer etc. (geschlossener Kundenkreis)
tabelle_b enthält die Bestellung(en) der Kunden aus Geschäftsbereich A also Kundennummer, Artikelnummer
tabelle_c enthält die Bestellung(en) der Kunden aus Geschäftsbereich B also Kundennummer, Artikelnummer
Ich möchte nun eine SQL-Abfrage basteln die mir die Anzahl der Kunden zurück gibt, die mind. eine Bestellung - egal ob tabelle_b (Geschäftsbereich A) oder tabelle_c (Geschäftsbereich B) - geordert haben.
Das folgende SQL-Statement funktioniert zwar, ist aber wahrscheinlich dennoch sehr schlecht gemacht. Das geht doch bestimmt viel einfacher und schneller, oder?
Diese Abfrage liefert mir zwar wie gesagt das gewünschte Resultat, aber wenn ich ein paar hundert Bestellungen in der Tabelle habe dauert die SQL-Abfrage ziemlich lange.
Code:
$sql = SELECT
COUNT(DISTINCT(tabelle_a.kundennummer))
FROM tabelle_a, tabelle_b, tabelle_c
WHERE
(tabelle_a.kundennummer=tabelle_b.kundennummer)
OR
(tabelle_a.kundennummer=tabelle_c.kundennummer);
$result = mysql_query($sql) or die($error_msg.sql_error($sql,__LINE__));
$anz = mysql_result($result,0);
Vielen Dank schon mal
Denny