我有两个表'USERS'和'GROUPS':
USERS
-id
-name
-groupid
GROUP
-id
-name
我想返回所有用户及其群组的名称和群组ID。它应该是组ID字段的外连接正确吗?
答案 0 :(得分:2)
简单的INNER JOIN就足够了:
SELECT `USERS`.*, `GROUP`.name AS group_name
FROM `USERS`, `GROUP`
WHERE `USERS`.groupid = `GROUP`.id
答案 1 :(得分:2)
您将要查看JOIN
声明
通过我的手机执行此操作,请原谅任何中等程度上不正确的语法,但需要很长一段时间
编辑:其他人的语法更好。这太早了
答案 2 :(得分:1)
您可以在LEFT JOIN
和users
之间使用groups
,以便不在组中的用户仍显示在结果集中,但组名称和ID为NULL:< / p>
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”。