MYSQL使用parentid和id获取所有id

时间:2013-11-26 09:00:34

标签: mysql

我正在尝试使用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

2 个答案:

答案 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。我认为你缺少一些信息。