Mysql 它的clauseNope。。。它也不起作用,它只显示了相同的表格,但不只是重复的战斗步骤,与我的回答相同的错误;)在我的答案中添加了DISTINCT,现在应该不再显示重复项;)当然,你的答案也应该有用——我只是开始讨厌次级查询。至于性能,您的答案可能更有效
Mysql 它的clauseNope。。。它也不起作用,它只显示了相同的表格,但不只是重复的战斗步骤,与我的回答相同的错误;)在我的答案中添加了DISTINCT,现在应该不再显示重复项;)当然,你的答案也应该有用——我只是开始讨厌次级查询。至于性能,您的答案可能更有效,mysql,sql,recursive-query,Mysql,Sql,Recursive Query,它的clauseNope。。。它也不起作用,它只显示了相同的表格,但不只是重复的战斗步骤,与我的回答相同的错误;)在我的答案中添加了DISTINCT,现在应该不再显示重复项;)当然,你的答案也应该有用——我只是开始讨厌次级查询。至于性能,您的答案可能更有效,因为您没有构建整个笛卡尔积。另外,请参阅悲观。企鹅的答案,了解您的查询为何不起作用。;)由于它仍然是一个自引用,所以每个条目都匹配自身。我猜OP需要重复项,在JOIN中添加distinct子句将隐藏所有这些,而不添加它将导致所有匹配行的笛卡尔
它的clauseNope。。。它也不起作用,它只显示了相同的表格,但不只是重复的战斗步骤,与我的回答相同的错误;)在我的答案中添加了DISTINCT,现在应该不再显示重复项;)当然,你的答案也应该有用——我只是开始讨厌次级查询。至于性能,您的答案可能更有效,因为您没有构建整个笛卡尔积。另外,请参阅悲观。企鹅的答案,了解您的查询为何不起作用。;)由于它仍然是一个自引用,所以每个条目都匹配自身。我猜OP需要重复项,在
JOIN
中添加distinct子句将隐藏所有这些,而不添加它将导致所有匹配行的笛卡尔积。因此我决定使用EXITS
clauseNope。。。它也不起作用,它只显示了相同的表格,但不只是重复的战斗步骤,与我的回答相同的错误;)在我的答案中添加了DISTINCT,现在应该不再显示重复项;)当然,你的答案也应该有用——我只是开始讨厌次级查询。至于性能,您的答案可能更有效,因为您没有构建整个笛卡尔积。另外,请参阅悲观。企鹅的答案,了解您的查询为何不起作用。;)由于它仍然是一个自引用,所以每个条目都匹配自身。我猜OP需要重复项,在JOIN
中添加distinct子句将隐藏所有这些,而不添加它将导致所有匹配行的笛卡尔积。因此我决定使用EXITS
clauseNope。。。它也不起作用,它只显示了相同的表格,但不只是重复的战斗步骤,与我的回答相同的错误;)在我的答案中添加了DISTINCT,现在应该不再显示重复项;)当然,你的答案也应该有用——我只是开始讨厌次级查询。至于性能,您的答案可能更有效,因为您没有构建整个笛卡尔积。另外,请参阅悲观。企鹅的答案,了解您的查询为何不起作用。;)由于它仍然是一个自引用,所以每个条目都匹配自身。我猜OP需要重复项,在JOIN
中添加distinct子句将隐藏所有这些,而不添加它将导致所有匹配行的笛卡尔积。因此我决定使用EXITS
clauseNope。。。它也不起作用,它只显示了相同的表格,但不只是重复的战斗步骤,与我的回答相同的错误;)你是对的,现在我看到你的查询,我的错误。删除了我的答案。您可能仍然需要添加一个独特的关键字以消除结果中的重复项。@JohannesH。你不必删除你的。。。我不需要使用distinct,因为我使用的是groupby和have。我参加聚会迟到了。。。我的答案可能是错的,哈哈。。。不知道我没有测试。当然我不必测试。但是,由于它几乎与您的建议相同,只是有一个额外的错误内置-出于什么原因应该在这里列出?您是对的,现在我看到您的查询,我得到了我的错误。删除了我的答案。您可能仍然需要添加一个独特的关键字以消除结果中的重复项。@JohannesH。你不必删除你的。。。我不需要使用distinct,因为我使用的是groupby和have。我参加聚会迟到了。。。我的答案可能是错的,哈哈。。。不知道我没有测试。当然我不必测试。但是,由于它几乎与您的建议相同,只是有一个额外的错误内置-出于什么原因应该在这里列出?您是对的,现在我看到您的查询,我得到了我的错误。删除了我的答案。您可能仍然需要添加一个独特的关键字以消除结果中的重复项。@JohannesH。你不必删除你的。。。我不需要使用distinct,因为我使用的是groupby和have。我参加聚会迟到了。。。我的答案可能是错的,哈哈。。。不知道我没有测试。当然我不必测试。但是,由于它几乎与您的建议相同,只是有一个额外的错误内置-出于什么原因应该在这里列出?您是对的,现在我看到您的查询,我得到了我的错误。删除了我的答案。您可能仍然需要添加一个独特的关键字以消除结果中的重复项。@JohannesH。你不必删除你的。。。我不需要使用distinct,因为我使用的是groupby和have。我参加聚会迟到了。。。我的答案可能是错的,哈哈。。。不知道我没有测试。当然我不必测试。但是,由于它几乎与您的建议相同,只是有一个额外的错误内置-出于什么原因应该在这里列出?
battle_id, winner, looser
1 200 44
2 55 366
3 44 200
4 123 200
5 200 44
6 55 366
7 177 205
8 188 211
9 366 55
10 55 366
battle_id, winner, looser
1 200 44
2 55 366
3 44 200
5 200 44
6 55 366
9 366 55
10 55 366
SELECT
t1.battle_id,
t1.winner,
t1.loser
FROM
your_table t1
WHERE
EXISTS (
SELECT
1
FROM
your_table t2
WHERE
( ( t1.winner = t2.winner
AND t1.loser = t2.loser )
OR ( t1.loser = t2.winner
AND t1.winner = t2.loser ) )
AND t1.battle_id <> t2.battle_id
)
SELECT b1.battle_id,
b1.winner,
b1.looser
FROM battles as b1
group by b1.battle_id, b1.winner, b1.looser
having count(*)>=2