phpbar.de logo

Mailinglisten-Archive

verwickelte SQL-Abfrage mit JOIN's

verwickelte SQL-Abfrage mit JOIN's

Sebastian Mendel lists at sebastianmendel.de
Die Mai 22 09:56:41 CEST 2007


Rico Koerner schrieb:
> Sebastian Mendel schrieb:
>> Rico Koerner schrieb:
>>> Selektierende Parameter sollten nicht im JOIN sondern bei WHERE stehen, also
>> Wer sagt das? Und vor allem wieso?
>> (Ich kenne diese Aussage, halte sie aber für unbegründet und einen Mythos)
> 
> Das sagt die MySQL-Dokumentation,

ich weiß, aber das ist doch kein Grund ... ;-)
... was alles in irgendwelchen Büchern steht ...


> das wieso solltest du dann wohl an die Entwickler stellen. ;-)
> Ich kann mir dafür mehrere Gründe vorstellen:
> - bessere Übersichlichkeit (damit aber nicht wirklich relevant)

nö, ich will nur die betimmtn Zeilen von der Tabelle, steht also in direktem
Zusammenhang

> - Performanceunterschiede in der Ausführung (noch nicht evaluiert)

dieser Punkt spricht eher dafür, aber auch nicht getested

> - wichtig für den Parser?
> - einfach nur wegen dem SQL-Standard?
> - Joins sind für die Verknüpfung von Tabellen zuständig.

eben, und hier sage ich welche Zeilen verknüpft werden sollen, nämlich nur
betimmte


>>> WHERE et.tag IS NULL OR ...
>>>
>>> vor allem auch OR, nicht AND denn es soll ja auch Datensätze liefern in
>>> denen et.tag NOT NULL ist dafür aber et.description != 'Ehename'
>> nein nein, du willst alle außer die mit dem event Ehename
> 
> Doch, das OR ist schon richtig, er will alle ohne Event (et.tag IS NULL)
> und alle mit ((et.tag NOT NULL) AND (et.description != 'Ehename'))
> 
> Die Bedingung lautete nicht et.tag = 'EVEN', da gabs auch noch ein
> 'OCCU' als möglichen Wert. Wieviel gibts da wohl noch?

doch, ist richtig! ;-)

also hole ich ALLE Personen und ordne denen das EVENT 'Ehename' zu wenn sie
das haben, anonsten NULL, und am Ende filtere ich alle aus die nicht NULL
haben (HAVING)



-- 
Sebastian Mendel

www.sebastianmendel.de
_______________________________________________
Allgemeine Infos zur Liste: http://www.4t2.com/mysql/
Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de

php::bar PHP Wiki   -   Listenarchive