我正在尝试创建一个 SELECT 语句,但我不太确定如何完成它。
我有 2 张 table ,user
和group
。每个用户都有一个userid
每组都有一个ownerid
指定谁拥有该组。每个组还有一个name
然后在用户表中,有一列 group
指定该人属于哪个组。 (请原谅这个烦人的结构,我没有创建它)。我试图找到 group
中的所有行其中ownerid
该组中没有 group
(在用户表内)设置为name
该组的。如果这有帮助:
用户
|-----------------------|
| id | username | group |
|----|----------|-------|
| 0 | Steve | night |
| 1 | Sally | night |
| 2 | Susan | sun |
| 3 | David | xray |
|-----------------------|
组
|---------------------|
| ownerid | name |
|---------|-----------|
| 1 | night |
| 3 | bravo |
| 2 | sun |
|---------------------|
其中 SQL 语句将返回 bravo
的组行因为 bravo 的所有者没有将他的组设置为 bravo。
最佳答案
这是连接回原始表,然后比较值:
select g.*
from group g join
user u
on g.ownerid = id
where g.name <> u.group;
如果值可以为NULL
,则逻辑需要考虑到这一点。
关于mysql - SQL复杂的select语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21346545/