mysql - SQL复杂的select语句

标签 mysql sql

我正在尝试创建一个 SELECT 语句,但我不太确定如何完成它。

我有 2 张 table ,usergroup 。每个用户都有一个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/

相关文章:

c# - 删除表中的特定条目

sql - 创建没有数字主键的 SQL 数据库表是不好的做法吗?

MYSQL SELECT MAX(id) + 1 其中 id < 1000

javascript - 我想在 jquery 对话框中从数据库获取 id

SQL如何将行映射到列?

php - 构建一个调用多个表的wordpress api

mysql - SQL-Server-2008 中的正则表达式

javascript - GET 方法返回 500 内部服务器错误

mysql - 如何选择某些 'id'的和并将结果按组划分

SQL Server 2008R2 - 从多个表插入