以下select语句是否符合SQL92标准?
SELECT table1.id, table2.id,*
FROM table1, table2
WHERE table1.id = table2.id
SELECT table1.Num, table2.id,*
FROM table1, table2
WHERE table1.Num = table2.id
答案 0 :(得分:2)
继续StingyJack ......
SELECT
table1.id,
table2.id,
*
FROM
table1
INNER JOIN
table2 ON table1.id = table2.id
WHERE
table1.column = 'bob'
SELECT table1.id, table2.id,* FROM table1, table2 WHERE table1.id = table2.id and table1.column = 'bob'
JOIN在哪里?过滤器在哪里?
JOIN还强制进行一些规则和基本检查:更容易避免交叉连接或部分交叉连接
答案 1 :(得分:1)
我可能错了,但我的理解是SQL92约定是使用JOIN语句连接表(例如FROM table1 INNER JOIN table2)。
答案 2 :(得分:1)
不幸的是,我相信它们是,但是连接语法更难以阅读和维护。
我知道使用MSSQL,这两种连接方法之间没有性能差异,但哪一种更容易理解?
SELECT table1.id, table2.id,*
FROM table1, table2
WHERE table1.id = table2.id
SELECT
table1.id,
table2.id,
*
FROM table1
INNER JOIN table2
ON table1.id = table2.id
答案 3 :(得分:1)
是的,您显示的查询使用符合SQL92的语法。我的副本“Understanding the New SQL: A Complete Guide”由Jim Melton& Alan R. Simon证实了这一点。
SQL92仍然支持使用逗号语法的连接,以便与SQL89向后兼容。
据我所知,所有SQL实现都支持逗号语法和JOIN
语法连接。
在大多数情况下,SQL实现知道如何优化它们,使它们在语义上(即它们产生相同的结果)和性能相同。