通过子查询简化mysql查询,以便在一个表中查找对
我在mysql中有下表:通过子查询简化mysql查询,以便在一个表中查找对,mysql,simplify,Mysql,Simplify,我在mysql中有下表: id | pairType 1 | 2 2 | 2 3 | 1 4 | 1 我需要通过id获得第二个值来配对。我可以通过两个分开的mysql查询来完成这项工作,但如果将它放在一个查询中会更舒服 例如: 第一个问题: SELECT `pairType` FROM `tmp` WHERE `id` = 1 //返回2 第二个问题: SELECT `id` FROM `tmp` WHERE `id`
id | pairType
1 | 2
2 | 2
3 | 1
4 | 1
我需要通过id获得第二个值来配对。我可以通过两个分开的mysql查询来完成这项工作,但如果将它放在一个查询中会更舒服
例如:
第一个问题:
SELECT `pairType`
FROM `tmp`
WHERE `id` = 1
//返回2
第二个问题:
SELECT `id`
FROM `tmp`
WHERE `id` != 1 AND `pairType` = 2
非常感谢像这样的东西应该有用:
SELECT id
FROM tmp
WHERE pairtype = (SELECT pairtype FROM tmp WHERE id = 1)
AND id <> 1
这完全不清楚你想要什么 但这里有一些随机猜测:
“按id配对的第二个值”?查看您的第二个结果查询,我无法得到您为什么需要执行第一个查询?第二次查询中使用了第1次查询的哪些数据?这是无法理解的
SELECT t.id
FROM tmp t
INNER JOIN tmp t_
ON t_.pairtype = t.id
t_.id = 1 ;
SELECT t.id
FROM tmp t
INNER JOIN tmp t_
ON t_.pairtype = t.pairtype
AND t_.id = 1
WHERE t.id != 1