我有3张看起来像这样的表:
Users
----------
UserID
Name
Phone
User Groups
-----------
GroupID
GroupActivity
Group Membership
---------------
UserID
GroupID
我正在尝试打印成员进行某项活动的所有群组的用户名和电话号码。例如,组1活动=编织,组2活动=缝纫,组3活动=编织。我想选择所有正在编织的成员,但我不确定如何在一个查询中加入这三个表。这是我到目前为止所尝试的:
SELECT
users.name, users.phone, groups.activity
FROM users
INNER JOIN group_membership ON group_membership.userID = users.userID
WHERE groups.activity = 'Knitting';
这最终会引发以下错误:
错误:缺少表“groups”的FROM子句条目
要解决此问题,我尝试将teams
添加到FROM
子句中,如下所示:
FROM users,groups
但是,这反过来又给了我这个错误:
错误:对表“members”
的FROM子句条目的无效引用
任何帮助都将不胜感激。
答案 0 :(得分:0)
试试这个
SELECT
users.name, users.phone, user_groups.activity
FROM users
INNER JOIN group_membership ON group_membership.userID = users.userID
inner join user_groups on user_groups.groupid = group_membership.groupid
WHERE user_groups.activity = 'Knitting';
答案 1 :(得分:0)
使用表别名和USING
子句可以缩短它:
SELECT ug.groupid, u.name, u.phone
FROM user_groups ug
JOIN group_membership USING (groupid)
JOIN users u USING (userid)
WHERE ug.activity = 'knitting';