隣接リスト/単一テーブル継承モデル()を使用して、データベースからすべての親要素を再帰的に取得する最も簡単な方法を探していますid, parent_id
。
私の選択は現在次のようになります:
$sql = "SELECT
e.id,
TIME_FORMAT(e.start_time, '%H:%i') AS start_time,
$title AS title,
$description AS description,
$type AS type,
$place_name AS place_name,
p.parent_id AS place_parent_id,
p.city AS place_city,
p.country AS place_country
FROM event AS e
LEFT JOIN place AS p ON p.id = e.place_id
LEFT JOIN event_type AS et ON et.id = e.event_type_id
WHERE e.day_id = '$day_id'
AND e.private_flag = 0
ORDER BY start_time";
それぞれevent
がにリンクされておりplace
、それぞれplace
が別の子になることができますplace
(最大約5レベルの深さ)
これは、mysqlを使用した単一の選択で可能ですか?
現時点では、返された$events
配列をループして要素を追加する別の関数である可能性があると考えていますplace_parent_X
が、これを実装する方法がわかりません。