phpbar.de logo

Mailinglisten-Archive

AW: left join Problem

AW: left join Problem

Wolfgang Hauck mysql-de_(at)_lists.bttr.org
Fri, 31 May 2002 15:30:38 +0200


>nachdem ich nun schon lange probiere und gruebele und keine Loesung finde,
>muss ich euch mal wieder um Hilfe bitten:

>In meiner Tabelle "Daten" habe ich eine Spalte "Nummer"(int), um die es
>geht. In Spalte "Art"(int) stehen Merkmalsauspraegungen von Nummer (1 bis
>9). Nummer kann also mehrfach vorkommen. Ich suche nun alle Nummern, die
>Auspraegung 3 haben, aber nicht zusaetzlich 2. Ausserdem gibt es eine 
Spalte
>Datum, die indexiert ist.
>Probiert habe ich das bisher mit einem left join der Tabelle mit sich
>selber.
>Meine Abfrage sieht so aus:

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

>Ich bin mir nicht ganz sicher, ob wirklich das richtige Ergebniss dabei
>rauskommt, denke aber schon. Das groesste Problem bei der Abfrage ist
>allerdings die Laufzeit (ca. 1h).

Hi Thomas,

In diesem Konstrukt liegt ein Denkfehler ???

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


---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive