我有两张桌子。 part
和activity
。部分有4列。 pid
(部分ID),aid
(活动ID),uname
(用户名)和active
。在活动表中有很多行,如aid, aname,adescription
等。
我将定义uname。我想检查part
表中是否存在该uname,如果存在,请获取aid
列等于active
的所有1
并检查使用aid
表格activity
并获取所有相应的详细信息,例如aname
,adescription
等。
表格中的数据:
我无法尝试写出这个问题。有人可以帮助我吗?
答案 0 :(得分:2)
如果我理解正确,那么您可以对两个表使用INNER JOIN
:
SELECT
a.*,
p.uname
FROM activity a
INNER JOIN part p ON a.aid = p.aid
AND p.uname = {uname} <-- As you are defining unames -->
AND p.active = 1
答案 1 :(得分:0)
通过研究您的要求,我觉得您不需要从零件表中输出任何数据。所以,我建议使用&#34;子查询&#34;因为它会更快。如果您需要零件表中的数据,您可能想要进入INNER JOIN。
查询应该使用子查询: -
SELECT a.* FROM activity a
WHERE a.aid IN (
SELECT p.aid FROM part p
WHERE p.uname = 'donor123' -- Inplace of 'donor123' please use the uname that you are searching for.
AND p.active = 1
);
使用INNER JOIN的查询将是: -
Select a.* FROM activity a INNER JOIN part p
ON a.aid = p.pid
AND p.uname = 'donor123' -- Inplace of 'donor123' please use the uname that you are searching for.
AND p.active = 1;