我有以下两个表'USERS'和'GROUPS':
USERS
-id
-name
-groupid
GROUP
-id
-name
我想返回所有用户以及他们的组名和组 ID。它应该是组 id 字段的外部连接,对吗?
一个简单的 INNER JOIN 就足够了:
SELECT `USERS`.*, `GROUP`.name AS group_name
FROM `USERS`, `GROUP`
WHERE `USERS`.groupid = `GROUP`.id
你会想看看JOIN
声明
用我的手机做这个,所以请原谅任何适度不正确的语法,但有些东西很长
编辑:其他人的语法更好。这里为时过早
您可以使用LEFT JOIN
between users
andgroups
以便不在组中的用户仍然显示在结果集中,但组名和 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 JOIN 两个表并从结果集中排除用户“NotInGroup”。INNER