sql >> Database >  >> RDS >> Sqlserver

AAN maakt deel uit van syntaxis

bij gebruik van de ANSI SQL-92 syntaxis, de ON trefwoord maakt deel uit van de join behalve de cross join omdat je geen voorwaarde hebt voor de relatie.

bijv.

INNER JOIN

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

CROSS JOIN

SELECT *
FROM tableA CROSS JOIN tableB

ON moet worden gevolgd na de samengevoegde tabel (voegt samen als INNER en OUTER ) zodat u geen syntaxisfout krijgt. maar als u de ANSI SQL-89 . gebruikt syntaxis, ON trefwoord is weggelaten, maar u moet de relatie specificeren op de where clause

bijv.

INNER JOIN

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

CROSS JOIN

SELECT *
FROM tableA, tableB

het is gevoelig voor fouten, want als u de voorwaarde vergeet, genereert het geen syntaxisfout en zal het waarschijnlijk de cross join doen



  1. Zou een beperking van de unieke sleutel met veel velden de MySQL-prestaties schaden?

  2. Lange polling in Laravel-chat:waarom wordt de div zichzelf niet bijgewerkt?

  3. MySQL-zoekopdracht voor 1,2,3,11,22,33 in veld

  4. Hoe dubbele rijen in SQL te vinden?