簡體   English   中英

具有不同值對的MySQL查詢

[英]MySQL query with distinct pairs of values

假設我有下表

  ID1 ID2
1   a   b
2   b   a
3   c   d

我試圖編寫一個查詢,其中返回1和2之類的行,因為它們本質上是相同的,只是按列反轉了,所以我編寫了以下查詢:

SELECT * 
FROM Likes A, Likes B
WHERE  A.ID2 = B.ID1 AND B.ID2 = A.ID1

這返回

  ID1 ID2
1   a   b
2   b   a

對我而言,下一步是僅返回第一個,即僅返回其中A.ID2 = B.ID1 AND B.ID2 = A.ID1不同行。

您可以在聯接條件中引入范圍比較,以將其限制為僅一行。

select l1.*
  from likes l1
    inner join likes l2
      on l1.id1 = l2.id2 
        and l1.id2 = l2.id1 
        and l1.id1 < l2.id1

這將選擇按字母順序排列的最低id1的行。 除非您需要其他標准來選擇返回哪一行?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM