簡體   English   中英

從多個表中選擇多個行

[英]Selecting multiple rows from multiple tables

我具有以下表結構:

- table users -
user_id
user_name

- table groups -
group_id
group_name

- table group_members -
group_id
user_id

還要說我在數據庫中有這個:

users:
1:administrator

groups:
1:administrators
2:superusers
3:normal users

group_members:
1:1 (user_id 1 is member of group_id 1)
1:2
1:3

現在,如何高效地選擇所有用戶,以及選擇這些用戶所屬的組? 我是否必須執行3個查詢,從所有3個表中選擇所有行,並使用PHP中的數組進行獲取,還是有一種更有效的方法來實現這一點?

select u.*, g.group_name
from users u
inner join group_members gm on gm.user_id = u.user_id
inner join groups g on g.group_id = gm.group_id
where u.user_id = 123

如果group和group_members表中沒有空字段,則此查詢應該有效

如果字段為空,則將內部聯接替換為左聯接

select users.username, group.group_name
from users  
inner join group_members on group_members.user_id = users.user_id
inner join groups  on group.group_id = group_members.group_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM