In Oracle, I use
SELECT * FROM table1...JOIN...
where the dots represent either the type of join or the condition on which to be joined.
Is this ANSI 89 syntax? If not, then how would I perform a join if I were using ANSI 89?
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.Sign up to join this community
You don't want to use SQL-89 syntax. SQL-89 is just an implicit
CROSS JOIN (Cartesian product).
SELECT * -- NEVER FROM foo, bar; -- NEVER EVER DO THIS
Is the same as the more modern
SELECT * FROM foo CROSS JOIN bar;
WHERE clause makes it the equivalent of an
INNER JOIN ... ON
SELECT * -- DO NOT FROM foo,bar -- DO THIS WHERE foo.foo_id = bar.foo_id; -- EVER
You want to use SQL-92 Syntax.
SELECT * FROM foo INNER JOIN bar ON foo.foo_id = bar.foo_id;
Or even better (if the join column is the same and it's an equijoin
SELECT * FROM foo INNER JOIN bar USING (foo_id);
INNER. That's fine. It's still SQL-92.