我是MySQL的新手,並從多個表中選擇項目時遇到問題。PHP/MySQL多表連接/工會
我有3個表(用戶,組,group_members)。下面是每個表都有:
- 用戶:USER_ID,USER_EMAIL,USER_NAME
- 組:GROUP_ID,組名
- group_members:GROUP_ID邀請,USER_ID
鑑於USER_ID我想找到user_email
, user_name
,group_id
和group_name
在一個查詢中。問題是,用戶可以一次在3個組中,因此在我的查詢中,我需要從group_members和groups表中獲取三行。任何幫助將不勝感激,以下是我的兩個最好的嘗試。
SELECT groups.group_id, groups.group_name, users.user_email, users.user_name
FROM groups, membership, users
WHERE membership.user_id=<user id> AND
membership.group_id = groups.group_id LIMIT 3;
SELECT groups.group_id, groups.group_name, users.user_email, users.user_name
FROM groups
LEFT JOIN membership ON groups.group_id = membership.group_id
LEFT JOIN users ON membership.user_id = users.user_id
WHERE (users.user_id = <user id>);
我能夠得到group_id和group_name的一行,但不是全部3.感謝您的幫助。
如果只是爲了顯示,你可以考慮
select ..., group_concat(groups.group_name) from ... group by users.user_id
– Inca