Выберите где не в другом выберите - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь

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

Ответы [ 4 ]

0 голосов
/ 01 июня 2018
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 разрешены на этой таблице.Итак, запуск:

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 
0 голосов
/ 01 июня 2018

Он ничего не вернет, потому что все ваши Perm_id из внешнего запроса будут иметь запись в подзапросе

Какова структура таблицы и что вы пытаетесь запросить?

0 голосов
/ 01 июня 2018

То, что вы пытаетесь сделать, - это найти дубликаты, основанные на имени пользователя и группировке busairid.Попробуйте следующий запрос, чтобы добиться того же.

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`
having count(*) > 1 
0 голосов
/ 01 июня 2018

В наборе результатов должно быть только 870 различных perm_id с 931. Попробуйте добавить ключевое слово DISTINCT в.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...