Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaka jest różnica między użyciem sprzężenia krzyżowego a umieszczeniem przecinka między dwiema tabelami?

Zwracają te same wyniki, ponieważ są semantycznie identyczne. To:

select * 
  from A, B

...to (wince) składnia ANSI-89. Bez klauzuli WHERE, która łączyłaby ze sobą tabele, wynikiem jest iloczyn kartezjański. Dokładnie to zapewnia alternatywa:

    select * 
      from A 
cross join B

...ale CROSS JOIN to składnia ANSI-92.

Informacje o wydajności

Nie ma między nimi różnicy w wydajności.

Dlaczego warto korzystać z ANSI-92?

Powodem używania składni ANSI-92 jest obsługa OUTER JOIN (IE:LEFT, FULL, RIGHT) -- składnia ANSI-89 nie ma żadnej, więc wiele baz danych zaimplementowało własną (która nie jest przenoszona na żadne inne bazy danych ). IE:Oracle (+) , =* programu SQL Server



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie o listę wszystkich procedur składowanych

  2. Uruchamianie programu SQL Server 2014 na maszynie wirtualnej platformy Azure

  3. Co to jest prosty program lub skrypt wiersza poleceń do tworzenia kopii zapasowych baz danych serwera SQL?

  4. Wymuszanie przekroczenia limitu czasu zapytania w SQL Server

  5. Nieemocjonalne logiczne spojrzenie na konwencje nazewnictwa SQL Server