sql >> Databáze >  >> RDS >> Sqlserver

ON je součástí syntaxe

při použití ANSI SQL-92 syntaxe, ON klíčové slovo je součástí spojení kromě cross join protože pro vztah nemáte podmínku.

např.

INNER JOIN

SELECT *
FROM tableA INNER JOIN tableB
       on tableA.ID = tableB.ID

CROSS PŘIPOJENÍ

SELECT *
FROM tableA CROSS JOIN tableB

ON by měly následovat po spojené tabulce (spojení jako INNER a OUTER ), takže nebudete mít chybu syntaxe. ale pokud používáte ANSI SQL-89 syntaxe, ON klíčové slovo je vynecháno, ale musíte určit vztah v where clause

např.

INNER JOIN

SELECT *
FROM tableA, tableB
WHERE tableA.ID = tableB.ID

CROSS PŘIPOJENÍ

SELECT *
FROM tableA, tableB

je náchylný k chybám, protože pokud zapomenete podmínku, nevygeneruje chybu syntaxe a pravděpodobně provede cross join



  1. Chyba připojení Postgres byla uzavřena v aplikaci Spring Boot

  2. Jak lze převést sekundy (nebo milisekundy) na časové razítko (nebo jen řetězec, který vypadá jako datum) v mySql

  3. Monitorování změn tabulky v Oracle

  4. Doporučený způsob předání datového připojení do třídy / metody PHP?