SQL:从三个表中选择

时间:2012-12-15 06:39:11

标签: sql join

如果我有三个表,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有何不同?

感谢。

3 个答案:

答案 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指出了代码的可读性。