我無法選擇多個結果與子/父母關係。這裏是帶有分類樹的表格。該category
表表示的關係,而category_name
表包含名稱字符串:如何在一個查詢中鏈接SQL選擇結果?
[category] [category_name]
id, id_parent id, name
------------- --------------
1 NULL 1 'animal'
2 1 2 'mammal'
3 2 3 'lion'
4 2 4 'sea_creature'
5 4 5 'lion'
作爲輸入我的名字,必須轉化爲ID的。層次結構正好3層深。例如:animal, mammal, lion,
- >1, 2, 3
。
正如你所看到的lion
名稱用於不同的類別。但是,上一級類別是唯一的,子類別的名稱在一個父類別中是唯一的。
我可以做三個獨立的查詢,從animal
開始,然後再利用其id
隨後查詢id_parent
比較:
查詢#1:
SELECT
cn.id
FROM
category_name cn
WHERE
cn.name = 'animal'
(這個查詢在的保存結果可變parent
)
查詢#2:
SELECT
cn.id
FROM
category_name cn
INNER JOIN category c ON cn.id = c.id
WHERE
cn.name = 'mammal' AND c.id_parent = <parent>
依此類推。但我相信有更好的方法來做到這一點。
謝謝。
您可以使用「UNION」並確保使用時的性能。 –