0

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

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

这是表格数据

水果||1
苹果|1|2

这是我正在运行的查询

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

这个查询不会停止处理,有没有更好的方法来处理这个查询?

4

4 回答 4

1

您可以使用 aJOIN来执行此操作:

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

请参阅带有演示的 SQL Fiddle

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

于 2012-07-11T14:40:12.267 回答
0

你需要的是一个加入。

SELECT a.PageDescription, b.PageDescription as Parent
FROM tblpages a
LEFT JOIN tblpages b ON a.CategoryID = b.ParentID
于 2012-07-11T14:35:46.590 回答
0

尝试命名您的两个表:

SELECT b.PageDescription,(SELECT PageDescription
      FROM tblpages a
     WHERE a.ParentID = b.CategoryID)
      AS 'Page Parent'
 FROM tblpages b
于 2012-07-11T14:37:31.780 回答
0
SELECT p.PageDescription,p1.PageDescription
      FROM tblpages p1
      LEFT JOIN p2 on p1.parentId=p2.categoryID
     WHERE 1;
于 2012-07-11T14:40:32.063 回答