2013-02-22 55 views
0

可能是錯誤的標題 我有一個輔助表在2個字段中保持關係。mysql查找條目匹配2個方向上的2個字段

像用戶A,用戶B

實施例數據

a,b 
1,2 
1,5 
1,6 
2,1 
2,3 

如果用戶在兩個方向走到一起的匹配將是。 在我的例子,這將是1和2 因爲兩者有一排保存在用戶B的對應

誰能告訴我怎樣可以構建一個MySQL查詢找到這個表格中的匹配基於一個用戶?

回答

0

這給一個嘗試,假設行是唯一

SELECT least(Col1, Col2) as x, 
     greatest(Col1, Col2) as y 
FROM Table1 
GROUP BY x, y 
HAVING COUNT(*) > 1 

但如果行不是唯一的,那麼你需要有DISTINCT關鍵字,

SELECT least(Col1, Col2) as x, 
     greatest(Col1, Col2) as y 
FROM Table1 
GROUP BY x, y 
HAVING COUNT(DISTINCT Col1, Col2) > 1 
+0

行不是唯一的..有什麼辦法讓一個綜合作用的結果? – Nullx8 2013-02-22 16:24:55

+0

@Nullx8你需要使用第二個查詢。 – 2013-02-22 16:26:29

+0

我需要這個作爲where子句中的子查詢,以獲得用戶的相關數據......但我不知道如何用x,y結果來做到這一點 – Nullx8 2013-02-22 16:58:24