选择不在其他选择中的位置

g6baxovj  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(266)

我正在努力

SELECT * 
FROM `bus_user_perms` 
WHERE `Perm_id` NOT IN (SELECT `Perm_id` 
                        FROM `bus_user_perms` 
                        GROUP BY `Perm_username`, `Perm_BusArId`)

但它什么也不回,我想应该是因为当我跑的时候:

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`

我得到了870个结果
当我跑的时候

SELECT `Perm_id` 
FROM `bus_user_perms`

我得到931个结果。
基本上我是想得到61个结果而不是870个

lyfkaqu1

lyfkaqu11#

您要做的是根据用户名和busairid分组查找重复项。尝试下面的查询以实现相同的效果。

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`
having count(*) > 1
nkkqxpd9

nkkqxpd92#

它不会归还任何东西,因为你所有的 Perm_id 从外部查询将在子查询中有一个条目
表的结构是什么?您要查询什么?

vkc1a9a2

vkc1a9a23#

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`

返回所有 Perm_id 有独特的 Perm_username 以及 Perm_BusArId .

SELECT `Perm_id` 
FROM `bus_user_perms`

返回所有 Perm_id 他在里面。
有可能是复制的 Perm_id 这张table上允许有人坐。所以跑步:

SELECT * 
FROM `bus_user_perms` 
WHERE `Perm_id` NOT IN (SELECT `Perm_id` 
                        FROM `bus_user_perms` 
                        GROUP BY `Perm_username`, `Perm_BusArId`)

什么也回不来。要运行复制数据,请执行以下操作:

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`
HAVING count(*) > 1
h6my8fg2

h6my8fg24#

在具有931的结果集中,必须只有870个不同的perm\u id。尝试在中添加distinct关键字。

相关问题