我有一个包含两个表组和成员的数据库。这些表中的列如下所示。
组表: GROUP_ID,组名
会员表: member_id,GROUP_ID,状态
我有一个应用程序,需要显示一个组列表以及组成员。说出SELECT * from groups
然后对于返回的每个组/行,最有效的方法是在成员表上执行另一个选择以查询成员(例如SELECT * FROM members WHERE group_id=X
)。
答案 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)
假设members
和groups
都有一个名为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