Salah satu pekerjaanku adalah memberikan data yang di minta oleh user. Nah user juga kadang-kadang minta yang aneh-aneh. Salah satunya adalah minta data Parent dan Child dari database yang ada dalam satu tabel.nah looh..aku tulis di sini biar suatu saat gampang nyarinya..
Kebetulan di tabel tempatku ada 4 level artinya bapaknya punya anak,cucu dan cicit. he he ...
sudah coba query-query sendiri masih belum bisa (dasr bebell..) coba tanya sama temen juga ga da yang ngerti karena mungkin belum kebayang data basenya. Coba googling ga mudeng2mudeng (bener-bener lemot..he he). Coba posting di milist ga da yang respon (banyak pertanyaannya saja lieur apalagi njawabnya ...alesan aja padahal sendirinya yang ga bisa nanya ....welehh nanya aja susah apalagi di suruh jawab).
Akhirnya tanpa malu-malu (padahal malu-maluin) nanya ke boss (thank's you ya boss) dan di kasih query sakti. Ok setelah banyak nulis yang ga berguna inilah query sakti itu ..jrengg.Nama tabelnya di tempatku t_relation.
SELECT
t1.relation_name AS level1,
t2.relation_name as level2,
t3.relation_name as level3,
t4.relation_name as level4
FROM t_relation AS t1
LEFT JOIN t_relation AS t2 ON t2.relation_parent_id = t1.relation_id
LEFT JOIN t_relation AS t3 ON t3.relation_parent_id = t2.relation_id
LEFT JOIN t_relation AS t4 ON t4.relation_parent_id = t3.relation_id
WHERE
t1.relation_type_id = 1
and t1.relation_parent_id is null
order BY
t1.relation_name,
t2.relation_name,
t3.relation_name,
t4.relation_name
;
Jika Id nya juga ingin di tampilin ini querynya :
SELECT
t1.relation_id as level1_id,
t1.relation_name AS level1,
t2.relation_id as level2_id,
t2.relation_name as level2,
t3.relation_id as level3_id,
t3.relation_name as level3,
t4.relation_id as level4_id,
t4.relation_name as level4
FROM t_relation AS t1
LEFT JOIN t_relation AS t2 ON t2.relation_parent_id = t1.relation_id
LEFT JOIN t_relation AS t3 ON t3.relation_parent_id = t2.relation_id
LEFT JOIN t_relation AS t4 ON t4.relation_parent_id = t3.relation_id
WHERE
t1.relation_type_id = 1
and t1.relation_parent_id is null
order BY
t1.relation_name,
t2.relation_name,
t3.relation_name,
t4.relation_name
;
Ok ..semoga bermanfaat buat nyang lain..
Senin, 10 Januari 2011
Tips mysql Query Parent - Child dalam 1 tabel
Langganan:
Posting Komentar (Atom)
Struktur tabelnya gimana gan?
BalasHapus