我有以下兩個表「用戶」和「組」:MySQL的 - 選擇組和用戶都在同一個查詢
USERS
-id
-name
-groupid
GROUP
-id
-name
我想返回所有用戶與他們的組名和組ID一起。它應該是一個外部連接組ID字段正確?
我有以下兩個表「用戶」和「組」:MySQL的 - 選擇組和用戶都在同一個查詢
USERS
-id
-name
-groupid
GROUP
-id
-name
我想返回所有用戶與他們的組名和組ID一起。它應該是一個外部連接組ID字段正確?
您可以使用和groups
一個LEFT JOIN
之間users
讓誰一組中沒有用戶在結果集中仍然顯示,但與組名和ID NULL:
SELECT
a.*,
b.name AS group_name
FROM
users a
LEFT JOIN
`group` b ON a.group_id = b.id
方注意:確保你將表名group
裝入反引號,因爲它是一個保留關鍵字。
的結果集應該是這個樣子:
id | name | group_id | group_name
-----------------------------------------------------------------------------
1 | John | 5 | ThisIsGroup5
3 | Tim | 3 | ThisIsGroup3
6 | NotInGroup | NULL | NULL
在上面的查詢將INNER JOIN兩個表,並排除在結果集的用戶「NotInGroup」更改LEFT
到INNER
。
一個簡單的INNER JOIN應該足夠:
SELECT `USERS`.*, `GROUP`.name AS group_name
FROM `USERS`, `GROUP`
WHERE `USERS`.groupid = `GROUP`.id
你會想看看JOIN
聲明
從手機這樣做,所以請原諒任何溫和不正確的語法,但一些長的行
編輯:其他人的語法更好。還爲時過早這裏
是否所有用戶都分配到了一組?我相信你需要一個外連接,如果你還想讓users.groupid爲空的用戶返回。 – AllInOne