Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jakie jest domyślne zachowanie MySQL JOIN, INNER czy OUTER?

W MySQL piszemy JOIN bez zastrzeżeń oznacza INNER JOIN . Innymi słowy INNER w INNER JOIN jest opcjonalne. INNER i CROSS są synonimami w MySQL. Dla jasności piszę JOIN lub INNER JOIN jeśli mam warunek przyłączenia i CROSS JOIN jeśli nie mam schorzenia.

Dozwolona składnia złączeń jest opisana w dokumentacji .

Efekt jest ten sam, ale historia za nimi jest inna. Składnia przecinka pochodzi ze standardu ANSI-89. Istnieje jednak wiele problemów związanych z tą składnią, dlatego w standardzie ANSI-92 wprowadzono słowo kluczowe JOIN.

Zdecydowanie polecam zawsze użyj składni JOIN zamiast przecinka.

  • T1 JOIN T2 ON ... jest bardziej czytelny niż T1, T2 WHERE ... .
  • Jest łatwiejszy w utrzymaniu, ponieważ relacje między tabelami i filtry są jasno zdefiniowane, a nie mieszane.
  • Składnia JOIN jest łatwiejsza do przekonwertowania na OUTER JOIN niż składnia przecinka.
  • Pomieszanie składni przecinka i JOIN w tej samej instrukcji może spowodować dziwne błędy ze względu na zasady pierwszeństwa.
  • Mniej prawdopodobne jest przypadkowe utworzenie produktu kartezjańskiego podczas używania składni JOIN z powodu zapomnianej klauzuli join, ponieważ klauzule join są zapisywane obok łączeń i łatwo jest sprawdzić, czy którejś nie brakuje.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Składnia SQL ALTER TABLE – wymienione przez DBMS

  2. Jak prawidłowo skonfigurować połączenie PDO

  3. Indeks przestrzenny w MySQL - BŁĄD - Nie można pobrać obiektu geometrii z danych wysyłanych do pola GEOMETRY

  4. @ Symbol - rozwiązanie dla rekurencyjnego zapytania SELECT w Mysql?

  5. XmlHTTPRequest:Błąd analizowania XML:nie znaleziono elementu