sql >> Database teknologi >  >> RDS >> Sqlserver

ON er en del af syntaksen

når du bruger ANSI SQL-92 syntaks, ON søgeordet er en del af sammenføjningen undtagen cross join da du ikke har en betingelse for forholdet.

eks.

INDRE JOIN

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

KRYDSJOIN

SELECT *
FROM tableA CROSS JOIN tableB

ON skal følges efter den samlede tabel (sammenføjninger som INNER og OUTER ), så du ikke har syntaksfejl. men hvis du bruger ANSI SQL-89 syntaks, ON nøgleord er udeladt, men du skal angive forholdet på where clause

eks.

INDRE JOIN

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

KRYDSJOIN

SELECT *
FROM tableA, tableB

det er tilbøjeligt til fejl, fordi hvis du glemmer betingelsen, vil det ikke generere syntaksfejl og vil sandsynligvis udføre cross join



  1. Hvorfor har vi brug for meddelelsesmæglere som RabbitMQ over en database som PostgreSQL?

  2. Åbner Android Sqlite-databasen i fragment

  3. Bedre teknikker til at trimme indledende nuller i SQL Server?

  4. Hvordan laver jeg en masseopdatering i mySQL ved hjælp af node.js