Mailinglisten-Archive |
>>select a.Nummer from Daten a left join Daten b on (a.Nummer=b.Nummer and >>b.Datum="2002-05-31" and b.Art="2") >>where a.Datum="2002-05-31" and a.Nummer="3" and b.Nummer is Null; >Was willst du denn überhaupt verknüpfen? Hier verknüpfst du alle möglichen >DS mit allen möglichen DS deren Feld Nummer gleich sind ??? Bei 100 >gleichen Nummern sind das 10000 Datensätze! Ausserdem vergleichst du >Gleiches mit Gleichem. >Anschliessend soll dann a.Nummer 3 sein und b.Nummer NULL ??????? Wie soll >das denn gehen? Ist 3 = Null? Wenn b.Datum="2002-05-31" und > a.Datum="2002-05-31" dann: a.Datum = b.Datum. Diese Query kann nicht >laufen. > >MFG Wolfgang Hallo Wolfgang, hmm, muss ich mal ueberlegen. Ich habe Nummern, die haben nur die Auspraegung 3 und andere, die haben 2 und 3 als Auspraegungen. Links vom left join waehle ich Nummer und Art=3, rechts waehle ich Nummer und Art=2. Dies wird nun im join verglichen. Als Ergebniss erhalte ich eine Liste mit zwei Arten von Zuordnungen: Nummer | Nummer (beide Nummern gleich) oder Nummer | Null (wenn die Nummer rechts nicht vorkommt). Den zweiten Fall waehle ich denn durch "b.Nummer is Null" aus. So jedenfalls stelle ich mir meine Query vor ;-). Damit, dass das verdammt viele Vergleiche gibt, hast du recht. Leider sind es auch nicht 100, sondern zwischen 50- und 70tausend Eintraege pro Tag, daher auch die lange Laufzeit der Query und meine Bitte um euren Rat. Gruss, Thomas --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive