2016-11-30 22 views
0

在我的數據庫中,我有一個包含家族成員的名稱,ID和性別的家族樹表,以及另一個具有父列和包含ID的子列的表。我正在努力尋找親子關係,並且我在查詢時遇到了一些困難。例如,我想找到「約翰」的父親,所以我的查詢是:在MySQL查詢中將父項與子項匹配

`select name from tree inner join relationship on id=parent where gender='m' and name="John"...` 

這是不對的,我在哪裏何去何從感到困惑。基本上我想選擇約翰的父母的姓名,並最終擴展查詢選擇約翰的母親和父親。我如何制定我的查詢來尋找約翰的父母給出他們的名字和關係(通過父母和孩子的列)?

+0

http://stackoverflow.com/questions/37287868/get-sum-from-nodes-tree/37288233# 37288233 – e4c5

回答

2

看起來像你需要兩個引用tree表。

沒有表格和示例數據的定義,我們只是猜測。

SELECT p.name 
    FROM tree p 
    JOIN relationship r 
     ON r.parent = p.id 
    JOIN tree c 
     ON c.id = r.child 
    WHERE p.gender = 'm' 
    AND c.name = 'John' 

假設(例如)

tree 

id name gender 
---- ---- ------ 
402 John m 
399 Adam m 

relationship 

parent child 
------ ----- 
    399 402 
+0

如果您可以通過給出每個連接後創建的每個表的示例來解釋連接,那麼您將非常友好@ spencer7593。提前致謝。 –