Mysql Query永远不会停止

时间:2012-07-11 14:32:28

标签: mysql

我有一个包含3列的简单表

PageDescription(varchar(50)) | ParentID (int) | CategoryID (int)

这是表格数据

Fruit||1
Apples|1|2

这是我正在运行的查询

SELECT PageDescription,(SELECT PageDescription
      FROM tblpages a
     WHERE a.ParentID = tblpages.CategoryID)
      AS 'Page Parent'
 FROM tblpages

此查询不会停止处理,是否有更好的方法来处理此查询?

4 个答案:

答案 0 :(得分:1)

您可以使用JOIN执行此操作:

SELECT t1.PageDescription
  , t2.PageDescription as PageParent
FROM t t1
LEFT JOIN t t2
  on t1.ParentId = t2.CategoryId

请参阅SQL Fiddle with Demo

使用LEFT JOIN将允许您包含具有空值的项目。

答案 1 :(得分:0)

您需要的是加入。

SELECT a.PageDescription, b.PageDescription as Parent
FROM tblpages a
LEFT JOIN tblpages b ON a.CategoryID = b.ParentID

答案 2 :(得分:0)

尝试命名两个表:

SELECT b.PageDescription,(SELECT PageDescription
      FROM tblpages a
     WHERE a.ParentID = b.CategoryID)
      AS 'Page Parent'
 FROM tblpages b

答案 3 :(得分:0)

SELECT p.PageDescription,p1.PageDescription
      FROM tblpages p1
      LEFT JOIN p2 on p1.parentId=p2.categoryID
     WHERE 1;