我有一张俱乐部的桌子,最多可以有10名成员。如何查询加入我现在不是会员的俱乐部。
每个俱乐部最多可以有10行,每个俱乐部都有不同的会员ID。
答案 0 :(得分:0)
每个俱乐部可以有10名成员并不重要。这只是一个“业务”规则或逻辑约束......
假设有三个表:
Club: Club_ID, Club_Name
Member: Member_ID, Member_Name
Club_Member: Club_Member_ID, Club_ID, Member_ID
如果您的Member_ID为123,则会显示您所属的所有俱乐部:
select member.member_id, member.member_name,
club.club_id, club.club_name
from member
join club_member on member.member_id = club_member.club_id
join club on club_member.club_id = club.club_id
where member_id = 123;
要查看你不在的人......
Select club.club_id, club.club_name
from club
where club.club_id not in (
select club.club_id
from member
join club_member on member.member_id = club_member.club_id
join club on club_member.club_id = club.club_id
where member_id = 123)
如果你真的只有一个这样的表:
Club_Members: Club_ID, Club_Name, Member_ID, Member_Name
您所属的所有俱乐部列表:
select club_id
from club_members
where member_id=123
您不属于的所有俱乐部的列表:
select distinct club_id, club_name
from club_members
where club_id not in (
select club_id
from club_members
where member_id=123 );