0

あいまい/不正確なタイトルの可能性があることをお詫びしますが、何を書くべきか正確にはわかりませんでした. 自由に編集してください。

Aという名前のMySQLテーブルがあります。Aには3つの列があります

ID、親 ID、および名前。

組織 ID は自動インクリメントされ、null になることはありません。親 ID はヌルにすることができます。名前は、A、B、C、D、E などです。

私の質問はです。情報を表示するときに、親 ID を表示する代わりに、親の名前を取得したいと考えています。

私が欲しいものをさらに説明するには、次の情報を考慮してください。

ID, PID, NAME:
1,  5,   HELLO
2,  5,   POPPET
3,  5,   HI
4,  5,   BYE
5,   ,   PARENT
6,   ,   LOL
7,  8,   LUL
8,   ,   TROPICAL

なるはず

ID, PID,      NAME:
1,  PARENT  , HELLO
2,  PARENT  , POPPET
3,  PARENT  , HI
4,  PARENT  , BYE
5,          , PARENT
6,          , LOL
7,  TROPICAL, LUL
8,          , TROPICAL

そんな感じ。私は解決策が単純であると半ば確信していますが、私は MySQL にかなり慣れていないため、クールなことを行うための構文についてあまり知りません。

単純すぎるように思えますが、テーブル自体を結合する必要がありますか? 私はそれ自体に LEFT JOIN を持つテーブルの SELECT を考えていました。別の行を参照する方法はありますか? おそらくもっと簡単な方法ですか?:)

洞察をいただければ幸いです。よろしくお願いします。

4

2 に答える 2

3

テーブルをそれ自体に結合することは、まさにあなたがする必要があることです。そのようです:

SELECT t1.ID, t2.NAME, t1.NAME
FROM table t1
LEFT JOIN table t2 ON t2.ID = t1.PID
于 2012-12-11T16:08:59.497 に答える
1

あなたは途中でした !

SELECT a.ID, p.Name as ParentName, a.Name as ItemName
FROM TableA a LEFT JOIN TableParent p on a.ParentID = p.ID
于 2012-12-11T16:09:49.553 に答える