SQL 小提琴-> http://sqlfiddle.com/#!2/28938/9
我有一张这样的桌子:
+------+----------+--------+
| id | group_id | letter |
+------+----------+--------+
| 1 | 44 | a |
| 2 | 55 | a |
| 3 | 44 | b |
| 4 | 55 | c |
| 5 | 44 | c |
| 6 | 55 | d |
+------+----------+--------+
而且我想选择任何具有两个或更多计数的字母以及具有该字母的两个 group_id。这是我正在处理的查询:
SELECT b.id AS idx, a.id AS idy, a.letter FROM (
SELECT id, letter, COUNT(1) AS count
FROM temp WHERE group_id = 55
OR group_id = 44
GROUP BY letter
) AS a
JOIN temp AS b ON a.letter = b.letter
WHERE a.count > 1
AND group_id = 55
这是我想要的结果:
+-----+-----+--------+
| idx | idy | letter |
+-----+-----+--------+
| 2 | 1 | a |
| 4 | 5 | c |
+-----+-----+--------+
但不幸的是,这就是我得到的
+-----+-----+--------+
| idx | idy | letter |
+-----+-----+--------+
| 2 | 1 | a |
| 4 | 4 | c |
+-----+-----+--------+
如何保证 ID 在正确的列中?
谢谢!