PythonQ 240-8XX Uživatelský manuál Strana 460

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 768
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 459
Kapitel 7: MySQL-Sprachreferenz 439
Wobei tabellen_verweis definiert ist als:
tabelle [[AS] alias] [USE INDEX (schluessel_liste)] [IGNORE INDEX (schluessel_liste)]
Und join_bedingung definiert ist als:
ON bedingungs_ausdruck |
USING (spalten_liste)
Sie sollten nie irgend welche Bedingungen im ON-Teil haben, die dazu benutzt werden, um
die Zeilen, die im Ergebnissatz auftauchen, zu beschr¨anken. Wenn Sie so etwas tun wollen,
m¨ussen Sie das in der WHERE-Klausel tun.
Beachten Sie, dass vor Version 3.23.17 INNER JOIN keine join_bedingung aufnahm!
Die letzte oben dargestellte LEFT OUTER JOIN-Syntax gibt es nur aus Gr¨unden der Kompat-
ibilit¨at mit ODBC:
Einem Tabellenverweis kann mit tabelle AS alias_name oder tabelle alias_name
ein Alias zugewiesen werden:
mysql> select t1.name, t2.gehalt from angestellte AS t1, info AS t2
where t1.name = t2.name;
Der ON-Bedingungscode ist jeglicher Bedingungscode der Form, wie er auch in einer
WHERE-Klausel benutzt werden kann.
Wenn es f¨ur die rechte Tabelle keinen ¨ubereinstimmenden Datensatz im ON- o der USING-
Teil eines LEFT JOIN gibt, wird f¨ur die rechte Tabelle eine Zeile benutzt, in der alle
Spalten auf NULL gesetzt sind. Das onnen Sie benutzen, um Datens¨atze in einer
Tabelle herauszusuchen, die in einer anderen Tabelle kein Gegenst¨uck haben:
mysql> select tabelle1.* from tabelle1
LEFT JOIN tabelle2 ON tabelle1.id=tabelle2.id
where tabelle2.id is NULL;
Dieses Beispiel findet alle Zeilen in tabelle1 mit einem id-Wert, der in tabelle2 nicht
vorhanden ist (also alle Zeilen in tabelle1 ohne entsprechende Zeile in tabelle2).
Hierbei wird nat¨urlich angenommen, dass tabelle2.id als NOT NULL deklariert ist.
Siehe Abschnitt 6.2.6 [LEFT JOIN optimisation], Seite 338.
Die USING-(spalten_liste)-Klausel nennt eine Auflistung von Spalten, die in beiden
Tabellen existieren m¨ussen. Eine USING-Klausel wie:
A LEFT JOIN B USING (C1,C2,C3,...)
Ist definiert als semantisch identisch mit einem ON-Ausdruck wie diesem:
A.C1=B.C1 AND A.C2=B.C2 AND A.C3=B.C3,...
Der NATURAL [LEFT] JOIN zweier Tabellen ist definiert als semantisch identisch
¨aquivalent zu einem INNER JOIN oder einem LEFT JOIN mit einer USING-Klausel, die
alle Spalten nennt, die in beiden Tabellen existieren.
RIGHT JOIN funktioniert analog wie LEFT JOIN. Um Code zwischen Datenbanken porta-
bel zu halten, wird empfohlen, LEFT JOIN anstelle von RIGHT JOIN zu benutzen.
STRAIGHT_JOIN ist identisch mit JOIN, ausser dass die linke Tabelle immer vor der
rechten Tabelle gelesen wird. Das kann in den (wenigen) allen benutzt werden, wo
der Optimierer die Tabellen in die falsche Reihenfolge bringt.
Ab MySQL-Version 3.23.12 onnen Sie Hinweise dar¨uber geben, welchen Index MySQL
benutzen sollte, wenn Informationen aus einer Tabelle a/jointfilesconvert/293675/bgerufen werden. Das ist
Zobrazit stránku 459
1 2 ... 455 456 457 458 459 460 461 462 463 464 465 ... 767 768

Komentáře k této Příručce

Žádné komentáře