親子関係のレコードを1度にまとめてSELECTしたい

実現したいこと

idを元にSELECTしたレコードと、
そのレコードの parent_idを持つレコード
の2行を 1回のクエリで同時にSELECT する事は可能でしょうか。

(googleで何と検索すれば いいでしょうか。)

例:
下記のテーブルにて、id=3 を元にしたとすると、

まず、くだもの レコードがSELECTされます。
くだもの レコードの parent_id は 1 なので、
id = 1 である、食べ物 レコード をSELECTします。

この時、くだもの レコードと、食べ物レコード の 2行を1回のクエリで取得したいです。

id parent_id data
1 null 食べ物
2 null 乗り物
3 1 くだもの
4 1 お菓子

▽取得したい配列の形

[ [ 'id'=>3 'parent_id'=>1, 'data'=>'くだもの' ], [ 'id'=>1 'parent_id'=>null, 'data'=>'食べ物' ], ]

試したこと

下記のコードでは、とある子供レコードの親レコードの取得はできますが、子供レコードが取得できなくて困っています。

sql

1SELECT t2.* 2FROM `main` t1 3JOIN `main` t2 ON t1.id = t2.parent_id 4WHERE t1.id = 3;

コメントを投稿

0 コメント