这些查询是否都是equi join的表示?
我发现两者都返回相同的结果。
查询1:
SELECT C.* FROM [Case] A, [Event] B, Notice C
WHERE A.CaseID = B.CaseID
AND B.EventID = C.EventID
QUERY2:
SELECT C.* FROM [Case] A
join [Event] B on A.CaseID = B.CaseID
join Notice C on B.EventID = C.EventID
请澄清。
答案 0 :(得分:4)
是的,相同的查询,不同的语法。
第二个查询最好写成:
SELECT C.*
FROM [Case] A
inner join [Event] B on A.CaseID = B.CaseID
inner join Notice C on B.EventID = C.EventID
使用ANSI语法的第二个查询比第一个查询具有一些优势:
ON
条款JOIN
子句与WHERE
子句答案 1 :(得分:0)
在FROM子句中使用逗号时,它与关键字JOIN相同。通常,您将使用INNER JOIN或OUTER JOIN形式,从而提供更有效的结果。