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

a を使用しJOINてこれを実行できます。

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

デモで SQL Fiddle を参照してください

aLEFT JOINを使用すると、null 値を持つアイテムを含めることができます。

于 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

2 つのテーブルに名前を付けてみてください。

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 に答える