如何基于来自另一个选择查询的数据运行选择查询

时间:2014-08-28 19:16:54

标签: mysql sql

我有一个包含两个表组和成员的数据库。这些表中的列如下所示。

组表: GROUP_ID,组名

会员表: member_id,GROUP_ID,状态

我有一个应用程序,需要显示一个组列表以及组成员。说出SELECT * from groups然后对于返回的每个组/行,最有效的方法是在成员表上执行另一个选择以查询成员(例如SELECT * FROM members WHERE group_id=X)。

3 个答案:

答案 0 :(得分:2)

select 
   g.group_id,
   g.group_name,
   m.member_id,
   m.status

from groups g 
     inner join members m on g.group_id = m.group_id

答案 1 :(得分:0)

假设membersgroups都有一个名为group_id的列,您可以使用join来获取所需的结果:

select m.*
from members as m
     inner join groups as g on m.group_id = g.group_id
where group_id = X

答案 2 :(得分:0)

SELECT * 
FROM groups g
LEFT JOIN members m
ON g.group_id = m.group_id

这将返回所有群组及其成员。

您可以引入变量,例如

SET @groups = (SELECT TOP 1 group_id FROM groups)

并将其添加到您的查询中。

SELECT * 
FROM groups g
LEFT JOIN members m
ON g.group_id = m.group_id
WHERE g.group_id = @groups