我有一个与
计划配对的表格id1 question1 id2 question2
1123 q1 2 q2
1123 q1 3 q3
1123 q1 1231 q142
2431 q12 1231 q142
(ID不是增量的,可以认为是随机的)
我想选择在id1和id2中都是唯一的元组,例如对于上面的示例,所需的输出可能是:
id1 question1 id2 question2
1123 q1 2 q2
2431 q12 1231 q142
提前谢谢。
答案 0 :(得分:1)
使用嵌套查询。
SELECT *
FROM (SELECT *
FROM yourTable
GROUP BY id1) AS x
GROUP BY id2
但是,如何进行分组是不可预知的。如果子查询选择
id1 id2
1123 1231
2431 1231
然后最终结果将是:
id1 id2
1123 1231
或
id1 id2
2431 1231
我不确定如何更改它,以便以最可能的组合产生结果。
答案 1 :(得分:0)
你也可以使用排名
SELECT id1,
question1,
id2,
question2
FROM (SELECT CASE id1
WHEN @curType
THEN @curRow := @curRow + 1
ELSE @curRow := 1 AND @curType := id1
END rank,
id1,
question1,
id2,
question2
FROM q,
(SELECT @curRow := 0, @curType := '') r
ORDER BY id1, id2
) t
WHERE rank = 1
结果
rank id1 id2
1 1123 2
1 2431 1231