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 |
+------+----------+--------+
そして、2 つ以上の数に加えて、その文字を持つ両方の 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 が正しい列にあることを保証するにはどうすればよいですか?
ありがとうございました!