मैं एक तालिका में यह डेटा, उदाहरण के लिए,कैसे छोड़ दिया करने के लिए शामिल होने या भीतरी एक मेज ही में शामिल होने
id name parent parent_id
1 add self 100
2 manage null 100
3 add 10 200
4 manage null 200
5 add 20 300
6 manage null 300
मैं कैसे left join
या inner join
इस तालिका में ही तो मैं नीचे इस परिणाम प्राप्त कर सकते हैं?
id name parent
2 manage self
4 manage 10
6 manage 20
आप मुझे लगता है कि मैं सिर्फ 'प्रबंधन' के कीवर्ड के साथ पंक्ति क्वेरी करना चाहते हैं कर सकते हैं, लेकिन मैं स्तंभ चाहते रूप parent
रूप प्रबंधन में के रूप में पंक्ति 'में डेटा जोड़ने' ' परिणाम में पंक्ति।
क्या यह संभव है?
संपादित करें:
मेरे वास्तविक तालिका के सरलीकृत संस्करण - system
,
system_id parent_id type function_name name main_parent make_accessible sort
31 30 left main Main NULL 0 1
32 31 left page_main_add Add self 0 1
33 31 left page_main_manage Manage NULL 0 2
मेरी वास्तविक क्वेरी और यह काफी पहले से ही गंदा है ...
SELECT
a.system_id,
a.main_parent,
b.name,
b.make_accessible,
b.sort
FROM system AS a
INNER JOIN -- self --
(
SELECT system_id, name, make_accessible, sort
FROM system AS s2
LEFT JOIN -- search --
(
SELECT system_id AS parent_id
FROM system AS s1
WHERE s1.function_name = 'page'
) AS s1
ON s1.parent_id = s2.parent_id
WHERE s2.parent_id = s1.parent_id
AND s2.system_id != s1.parent_id
ORDER BY s2.sort ASC
) b
ON b.system_id = a.parent_id
WHERE a.function_name LIKE '%manage%'
ORDER BY b.sort ASC
परिणाम मैं वर्तमान में,
system_id main_parent name make_accessible sort
33 NULL Main 0 1
लेकिन मैं इस के बाद कर रहा हूँ,
system_id main_parent name make_accessible sort
33 self Main 0 1
संपादन और उत्तर के लिए धन्यवाद। इसका परीक्षण किया और इसे सही मिला। धन्यवाद! – laukok