2

当特定列tableX的值与tableY.

假设我们有 2 个表:一个名为person包含一个名为的列membershipid,另一个名为tasks包含一个名为 的列memberid。在这种情况下,显示记录的条件如下:

membershipidperson=memberidtasks

这需要使用 JOIN 子句还是我仍然可以为此使用 WHERE 关键字?

谢谢参观。

4

3 回答 3

2

根据我对您的问题的理解,听起来是的,您只需INNER JOIN要从.tableXtableY

所以像:

SELECT tableXcol1, tableXcol2, tableXcol3
FROM tableX
INNER JOIN tableY
ON tableX.specific_column = tableY.specific_column
于 2013-04-25T21:55:27.323 回答
1

虽然可以使用where子句来完成,但我建议您使用连接。

where款式(不推荐)

select t1.field1, t1.field2, ...
from aTable as t1, anotherTable as t2
where t1.field1 = t2.field1;

join款式(推荐)

select t1.field1, t1.field2, ...
from aTable as t1 inner join anotherTable as t2 on t1.field1 = t2.field1
于 2013-04-25T21:57:30.543 回答
1

如果您只需要来自 tableX 的数据而不需要来自 tableY 的数据,那么执行 aJOIN可能会给您带来重复的数据。改为使用EXISTS,例如

SELECT person.col1, person.col2
FROM person
WHERE
    EXISTS (
        SELECT 1
        FROM tasks
        WHERE
            person.membershipid = tasks.memberid
    )
于 2013-04-26T01:14:00.557 回答