phpbar.de logo

Mailinglisten-Archive

Re: MySQL join
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MySQL join



Marc Logemann schrieb am Mittwoch, den 29. September 1999,
in der deutschen MySQL-Mailingliste:
> kann ich mit Mysql (3.22.23) einen LEFT INNER JOIN realisieren, ohne
> den nicht soooo performanten syntax:
> 
> select * from table1, table2 where table1.field = table2.field
> 
> zu nehmen?? (da hier erst kartesiches Produkt gebildet wird)

N�, das stimmt so nicht.  MySQL bildet nicht erst ein riesiges
kartesisches Produkt, aus dem dann Zeilen herausgefiltert werden
(auch wenn das die Syntax vermuten lassen k�nnte), sondern sucht sich
die passenden Partnerzeilen aus beiden Tabellen und erzeugt daraus
dann passend die Ergebniszeilen.

F�r die Geschwindigkeit dieser Suche in den Tabellen ist aber
entscheidend, da� Du Indexe auf beiden Feldern hast und beide Felder
den gleichen Typ haben!

Kennst Du den Befehl EXPLAIN in MySQL?  Damit kannst Du sehr sch�n
sehen, welche Indexe MySQL f�r eine Query nutzt ...

Siehe auch im MySQL-Handbuch die Kapitel
"7.21 EXPLAIN syntax (Get information about a SELECT)" und
"10.4 How MySQL uses indexes" und folgende.

> Ich habe irgendwo was gelesen das 3.23 die Klausel INNER JOIN
> versteht, stimmt das??

Ja, das ist synonym zum Komma.  Die Join-Bedingung kommt weiterhin in
den WHERE-Teil (was keinen Nachteil darstellt, wie ich zu erkl�ren
versuche).

Jedes halbwegs vern�nftige Datenbanksystem sollte eh unabh�ngig davon,
ob Du eine ON-Klausel schreibst oder eine Bedingung im WHERE-Teil, den
optimalen Weg zur Auswertung suchen, was sicher fast immer bedeutet,
_kein_ volles Kreuzprodukt zu materialisieren.

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive