srob: Join Optimieren

Beitrag lesen

ich möchte aus meiner Kundenliste "tabelle" nur die Kundendaten Selecten die unter den bestellten Produkten "tabelle1" bei Zahlung auf 'm' stehen ...

$data = mysql_query ( "
SELECT *
FROM tabelle,tabelle1
WHERE tabelle1.zahlung='m'
");

Moin Tom,

bevor Du wie im Thread-Titel an die Optimierung des Joins denken kannst, mußt Du diesen erst einmal herstellen:

SELECT ku.id,ku.blahblahundsoweiter
      FROM tabelle ku,tabelle1 za
      WHERE (ku.id = za.idku) AND (za.zahlung = 'm')
      GROUP BY 1

Annahme: idku sei in tabelle1 die Spalte, die die ID des Kunden aus tabelle enthält (sinnvollere Tabellennamen wären cool).

Die Abfrage bringt mir jetzt zwar nur die Kunden aus die den gewünschten Status haben,

Mit dem von Dir zitierten SELECT bezweifle ich das - es sei denn, alle Kunden hätten den gewünschten Status.

allerdings wenn in "tabelle1" mehrere Produkte auf einen Kunden
laufen vervielfacht sich das Ergebniss

Weil Du ohne Join-Bedingung ein Kreuzprokukt der beiden Tabellen herstellst.

ich habe da mal etwas in der art gesehen aber leider keine Infos dazu gefunden "$row[$row[1]]"

?

HTH Robert