2013-02-22 26 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