gpt4 book ai didi

mysql - SQL:如何选择一对表对象,每个对象的重复次数有限?

转载 作者:行者123 更新时间:2023-11-30 21:53:07 26 4
gpt4 key购买 nike

我想找到不同的问题对,但每个问题在所有结果对中最多重复几次(例如 5 次并不重要)。

我有一个问题表,通过它本身的笛卡尔积,第一个位置的每个问题至少与所有其他问题重复。

我怎样才能限制结果以找到每个问题都有几次重复的问题对?

主表是这样的:

id  question
1 q1
2 q2
3 q3
4 q4

我用笛卡尔积实现

id1   question1  id2   question2
1 q1 2 q2
1 q1 3 q3
1 q1 4 q4
.
.
.

但我只想

id1   question1  id2   question2
1 q1 2 q2
3 q3 4 q4

(q1不再重复)

提前致谢

最佳答案

如果 Id 是连续序列(没有空洞),您可以将一个偶数 id 与一个奇数 id 配对。

 SELECT *
FROM question Q1
JOIN question Q2
ON Q1.ID = Q2.ID -1
WHERE
Q1.ID % 2 <> 0

现在,如果问题的数量是奇数,您可以添加一个附加条件,例如最后一个问题与第一个问题。

 UNION 
SELECT *
FROM question Q1
JOIN question Q2
WHERE
Q1.ID = 1
AND Q2.ID = (SELECT max(ID) FROM questions)

关于mysql - SQL:如何选择一对表对象,每个对象的重复次数有限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46326450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com