MySQL: получить строки с несколькими ключами, соответствующие нескольким условиям WHERE (возможно, просто) - PullRequest
0 голосов
/ 23 октября 2009

У меня есть таблица пользовательских данных, которая включает в себя ID пользователя и ID категории. Я хочу получить всех пользователей, связанных с несколькими идентификаторами категорий, например:

id | UserID | CategoryID

1 | 123456 | 999

2 | 123456 | 888

3 | 123457 | 999

4 | 123458 | 777

Так, например, если бы я хотел получить всех пользователей с ID категории 999, я бы получил 123456 и 123457. Мне нужно , чтобы получить всех пользователей с ID категории 999 и 888, который в этом случае должен давать только пользователю 123456. Я не могу понять, как написать запрос, чтобы дать мне эти данные.

Может кто-нибудь помочь?

Ответы [ 2 ]

1 голос
/ 23 октября 2009

Кажется, я решил это сам:

SELECT *, GROUP_CONCAT(CategoryID) AS ids FROM tblWebsiteUserStats
GROUP BY UserID
HAVING ids LIKE '%888%' AND ids LIKE '%999%'

Это работает!

1 голос
/ 23 октября 2009

Не был бы

SELECT DISTINCT tbl1.UserID FROM table_1 AS tbl1 LEFT JOIN table_1 AS tbl2 ON tbl1.UserID = tbl2.UserID WHERE tbl1.CategoryID = 999 AND tbl2.CategoryID = 888

сделать JPB? (Я не уверен)

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