phpbar.de logo

Mailinglisten-Archive

AW: left join Problem

AW: left join Problem

Thomas Fritz mysql-de_(at)_lists.bttr.org
Fri, 31 May 2002 16:11:06 +0200


>>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