MySQL:获取与多个WHERE条件匹配的多键行(可能很简单)

时间:2009-10-23 10:31:24

标签: mysql

我有一个userdata表,其中包含用户ID和类别ID。我想抓住与多个类别ID相关联的所有用户,例如:

id | UserID | CategoryID

1 | 123456 | 999

2 | 123456 | 888

3 | 123457 | 999

4 | 123458 | 777

例如,如果我想让所有用户的categoryID为999,我会得到123456和123457.我需要让所有用户的categoryID为999 888,在这种情况下应该只给我用户123456.我无法弄清楚如何编写查询来给我这些数据。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

岂不

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? (我不确定)

答案 1 :(得分:1)

我似乎已经解决了这个问题:

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

这有效!