一个语句中同一个表上的多个查询

时间:2017-12-10 16:32:27

标签: mysql

我有一个类似于以下类别的MySQL表:

id    name    parent
1     cat1    0
2     cat2    0
3     cat3    1
4     cat4    1
5     cat5    2

让我们选择类别4,我想在同一个SQL查询中获取父类别(1)及其名称(cat1),任何人都可以帮忙吗?

到目前为止,我这样做:

SELECT parent AS p FROM categories WHERE id=4;

然后在另一个查询中

SELECT name FROM categories WHERE id=p;

但考虑到表格的大小,我希望通过将这两个查询转换为1来加快速度。

谢谢! :)

2 个答案:

答案 0 :(得分:0)

这个怎么样?

SELECT parent, name FROM categories WHERE id=(SELECT parent FROM categories WHERE id=4);

答案 1 :(得分:0)

SELECT p.id, p.name FROM categories p, categories s WHERE s.id=4 AND p.id=s.parent;