通过子查询简化 mysql 查询以在一个 table 中查找对
Simplification mysql query by subquery for finding pair in one table
我在 mysql 中关注 table:
id | pairType
1 | 2
2 | 2
3 | 1
4 | 1
我需要获取第二个值以按 ID 配对。我可以通过 2 个单独的 mysql 查询来做到这一点,但是将它放在一个 table 中会更舒服。
例如:
第一次查询:
SELECT `pairType`
FROM `tmp`
WHERE `id` = 1
//return 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
完全不清楚你在问什么。
但这里有一些随机猜测:
http://sqlfiddle.com/#!9/ee0096/4
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
我在 mysql 中关注 table:
id | pairType
1 | 2
2 | 2
3 | 1
4 | 1
我需要获取第二个值以按 ID 配对。我可以通过 2 个单独的 mysql 查询来做到这一点,但是将它放在一个 table 中会更舒服。
例如: 第一次查询:
SELECT `pairType`
FROM `tmp`
WHERE `id` = 1
//return 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
完全不清楚你在问什么。
但这里有一些随机猜测:
http://sqlfiddle.com/#!9/ee0096/4
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