通过子查询简化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`

我在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` != 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