1

次の2つのデータベーステーブルがあります。

ニューステーブル:

newsID, topic, categoryID

カテゴリ表:

categoryID, title, parentID

newsID、トピック、メインカテゴリのタイトルを取得したいのですが、parentIDが0でない場合にのみ、親カテゴリのタイトルを取得します。現在、私はそのように立ち往生しています:

SELECT news.newsID, news.topic, category.title
FROM news
LEFT JOIN category
ON news.categoryID = category.categoryID
WHERE news.newsID = 1

可能な場合は、まだ親のタイトルがありません。それを取得するための最もパフォーマンスの高い方法は何ですか(利用可能な場合)?

ありがとう

4

2 に答える 2

2

テーブルにcategoryID列があると仮定します。news

SELECT n.newsID, n.topic, c.title, cp.title as parenttitle
FROM news n
LEFT JOIN category c ON n.categoryID = c.categoryID
LEFT JOIN category cp ON cp.categoryID = c.parentID
WHERE n.newsID = 1
于 2012-12-10T20:32:31.840 に答える
1

テーブルにcategoryID列があり、テーブルが自己参照階層であると仮定します。つまり、子は同じテーブルの親行の列を参照します。newscategoryparentIDcategoryID

SELECT          n.newsID, n.topic, c.title, p.title as parentTitle
FROM        news n
LEFT JOIN   category c
ON         n.categoryID = c.categoryID
LEFT JOIN   category p
ON     c.parentID = p.categoryID
WHERE       n.newsID = 1
于 2012-12-10T20:35:30.903 に答える