我在尝试查询问题时遇到了挑战。
我有一个包含2列的表:
TOPIC_ID& USER_ID,两者都是INTEGER(11)
TOPIC_ID USER_ID
-- -- -- -------
1 1
1 2
2 10
2 20
3 1
3 10
4 3
4 20
我想要的结果是看两个用户是否已经有一个主题ID,或者是否需要创建一个;
例如,如果我检查USER_ID 1& 2;他们有TOPIC_ID 1; 如果我检查USER_ID 10& 20,他们有TOPIC_ID 2; 如果我检查USER_ID 99& 88,他们没有TOPIC_ID,所以需要创建;
你会如何推荐这个?我带来了以下2个产生结果的查询,但我想知道你的建议。
SELECT TOPIC_ID
FROM TOPIC_USERS
GROUP BY TOPIC_ID
HAVING MIN(USER_ID) = 1
AND MAX(USER_ID) = 2;
SELECT IF(COUNT(*),TU1.TOPIC_ID,0)
FROM TOPIC_USERS AS TU1
LEFT JOIN TOPIC_USERS AS TU2 ON (TU1.TOPIC_ID = TU2.TOPIC_ID)
WHERE TU1.USER_ID = 1
AND TU2.USER_ID = 2;
感谢您的帮助。