0

如果我有三个表,A/B/C,A 与 B 相关,B 与 C 相关,并且我想使用来自 C 的信息从 A 获取信息,我可以执行以下操作吗?:

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 有何不同?

谢谢。

4

3 回答 3

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';
于 2012-12-15T06:47:58.193 回答
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';
于 2012-12-15T06:47:09.373 回答
0

是的,你所做的会奏效,这实际上就是我们所说的“Equijoin”。但是,如果您处理大量表,则显式使用连接语法会更有效,正如 Barmar 在代码可读性方面指出的那样。

于 2012-12-15T07:01:27.437 回答