MySQL Group By Question - PullRequest
       14

MySQL Group By Question

0 голосов
/ 08 февраля 2011

У меня есть таблица заявок, и мне нужно выбрать уникальный список заявок, с которыми не связан определенный пользователь.Я не могу просто сказать «ГДЕ user_id! = 10», потому что инструкция GROUP BY влияет на то, какой именно user_id возвращается.

Наконец, я работаю с базой данных MySQL.мне построить запрос, чтобы вернуть мои необходимые результаты?

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Это должно сработать:

SELECT *
FROM tickets
WHERE ticket NOT IN (SELECT ticket FROM tickets WHERE user_id = 10)

Это выбирает все билеты из таблицы заявок, которые не соответствуют билетам, которые есть у пользователя (id = 10).

Предложение GROUP BY предназначено для использования (как сказал OrangeDog) для агрегированных запросов. Так, например, если вы собираетесь узнать количество пользователей для билета, вы должны использовать:

SELECT COUNT(*) AS tcnt, ticket
FROM tickets
GROUP BY ticket

Что даст вам:

+------+--------+
| tcnt | ticket |
+------+--------+
|    1 | T12345 |
|    1 | T23456 |
|    2 | T34567 |
|    3 | T45678 |
+------+--------+

Поскольку здесь вы не делаете что-то подобное, в этом нет необходимости.

0 голосов
/ 08 февраля 2011
SELECT *
FROM tickets 
WHERE ticket NOT IN (SELECT ticket FROM tickets WHERE user_id = 10);

GROUP BY предназначено для использования агрегатных функций (COUNT, SUM и т. Д.). Обычно это не принесет пользы, если это не так.

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