我有以下两个表“ USERS”和“ GROUPS”:
USERS
-id
-name
-groupid
GROUP
-id
-name
我想返回所有用户及其组的名称和组ID。应该是组ID字段上的外部联接正确吗?
最佳答案
您可以在LEFT JOIN
和users
之间使用groups
,以便不在组中的用户仍显示在结果集中,但组名和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
在上面的查询中将
LEFT
更改为INNER
会INNER JOIN这两个表并将用户“ NotInGroup”从结果集中排除。