Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

Is it possible to write inner join or outer join without specfying the condition? Is ON condition is part of the syntax of join condition?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
698 views
Welcome To Ask or Share your Answers For Others

1 Answer

when using the ANSI SQL-92 syntax, the ON keyword is part of the join except for the cross join since you don't have a condition for the relationship.

ex.

INNER JOIN

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

CROSS JOIN

SELECT *
FROM tableA CROSS JOIN tableB

ON should be followed after the joined table (joins like INNER and OUTER) so you won't have syntax error. but if you're using the ANSI SQL-89 syntax, ON keyword is omitted but you have to specify the relationship on the where clause

ex.

INNER JOIN

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

CROSS JOIN

SELECT *
FROM tableA, tableB

it is prone to error because if you forget the condition, it won't generate syntax error and will likely do the cross join


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...