mam te dane w tabeli, na przykład,Jak dołączyć lewo lub wewnętrzna przyłączyć się do samej tabeli
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
Jak mogę left join
lub inner join
ta sama tabela więc uzyskać ten wynik poniżej?
id name parent
2 manage self
4 manage 10
6 manage 20
Jak mogę, że ja po prostu chcę zapytać wiersz ze słowem kluczowym z „zarządzania”, ale chcę kolumnę parent
„s dane w dodać«s wiersz jak jak w zarządzać» s wynik w wierszu.
Czy to możliwe?
EDIT:
uproszczona wersja mojego rzeczywistego stole - 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
moje rzeczywiste zapytania i jest całkiem już brudny ...
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
wynik I Uzyskaj obecnie,
system_id main_parent name make_accessible sort
33 NULL Main 0 1
ale jestem po to,
system_id main_parent name make_accessible sort
33 self Main 0 1
dzięki za edycję i odpowiedź. przetestowałem to i dobrze to zrobiłem. dzięki! – laukok