我正在尝试使用id
将所有typeid
置于id
之下我只想使用一个查询来执行此操作,可以使用这样的内部查询来完成。
SELECT id FROM users where typeId = (SELECT typeId FROM users where id = 5)
这会给我我想要的但我听说内部查询很慢所以我想使用连接查询来做到这一点。
用户
id typeid name
1 2 a
2 2 b
3 1 c
4 3 d
5 3 e
答案 0 :(得分:0)
那将是:
SELECT
a.id
FROM
users AS a
LEFT JOIN users AS b
ON a.typeId=b.typeId
WHERE
b.id = 5
- 检查此fiddle。
答案 1 :(得分:0)
您希望我不知道此查询:
SELECT id FROM users where typeId = (SELECT typeId FROM users where id = 5)
您可以简单地将此查询编写为:
SELECT t1.id
FROM users AS t1
LEFT JOIN users AS t2
ON t1.typeId = t2.typeId
WHERE t2.id=5
但我惊呼,当你知道id时,为什么你使用查询再次获取相同的id。我认为你缺少一些信息。