当特定列的值与tableX
中相应列的值匹配时,我试图显示多列tableY
数据。
想象一下,我们有两个表:一个名为person
,其中包含一个名为membershipid
的列,另一个名为tasks
,其中包含一个名为memberid
的列。在这种情况下,显示记录的条件如下:
membershipid
上的person
= memberid
上的tasks
这是否需要使用JOIN子句,或者我仍然可以使用WHERE关键字吗?
谢谢你看看。
答案 0 :(得分:2)
根据我对您的问题的理解,听起来似乎是,您需要INNER JOIN
仅从tableX
中提取已加入列中匹配值的行tableY
SELECT tableXcol1, tableXcol2, tableXcol3
FROM tableX
INNER JOIN tableY
ON tableX.specific_column = tableY.specific_column
。
类似于:
{{1}}
答案 1 :(得分: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
答案 2 :(得分:1)
如果您只需要来自表格而不是来自tableT的数据,那么执行JOIN
可能会为您提供重复数据。请改用EXISTS
,例如
SELECT person.col1, person.col2
FROM person
WHERE
EXISTS (
SELECT 1
FROM tasks
WHERE
person.membershipid = tasks.memberid
)