如果我有三个表,A / B / C,A与B相关,B与C相关,我想从A获取信息,使用C中的信息可以执行以下操作吗? :
SELECT A.field
FROM A, B, C
WHERE A.key = B.key and B.key2 = C.key2 and C.field = 'some_data';
我试过看了这个,我看到很多提到“JOINS”,但我不熟悉SQL。所以我想知道:我的解决方案在逻辑上是否有效?它与实际使用JOIN关键字的JOIN有何不同?
感谢。
答案 0 :(得分:2)
是的,它运作正常。但是,最好使用明确连接语法:
SELECT A.field
FROM A
JOIN B ON A.key = B.key
JOIN C ON B.key2 = C.key2
WHERE C.field = 'some_data';
答案 1 :(得分:0)
在这种情况下你真的应该使用JOIN子句。
假设这是您正在使用的Microsoft SQL Server:
SELECT A.field
FROM A
JOIN B on B.key = A.key
JOIN C on C.key2 = B.key2
AND C.field = 'some_data';
答案 2 :(得分:0)
是的,你所做的将会起作用,这实际上就是我们所说的" Equijoin。" 但是,如果您处理大量表,那么显式使用连接语法会更有效,因为Barmar指出了代码的可读性。