2016-11-30 4 views
0

In meiner Datenbank habe ich eine Stammbaum-Tabelle mit Namen, IDs und Geschlechtern von Familienmitgliedern und eine andere Tabelle, die eine übergeordnete Spalte und eine untergeordnete Spalte mit IDs hat. Ich versuche, die Eltern-Kind-Beziehung zu finden, und ich habe Schwierigkeiten, die Anfrage richtig zu stellen. Zum Beispiel möchte ich den Vater von ‚John‘ zu finden, so meine Frage ist:Matching Eltern zu Kind in MySQL Abfrage

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

Das ist nicht richtig, und ich bin verwirrt darüber, wo man von hier geht. Grundsätzlich möchte ich den Namen des männlichen Elternteils von John auswählen und schließlich die Abfrage erweitern, um Johns Mutter und Vater auszuwählen. Wie würde ich meine Abfrage formulieren, um nach Johns Eltern mit ihren Namen und ihrer Beziehung (über Eltern- und Kindspalten) zu suchen?

+0

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

Antwort

2

Scheint, dass Sie zwei Verweise auf die Tabelle tree benötigen würden.

Ohne eine Definition der Tabellen und Beispieldaten, raten wir nur.

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' 

vorausgesetzt (zum Beispiel)

tree 

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

und

relationship 

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

Es wird sehr nett von Ihnen @ spencer7593, wenn Sie die Joins erläutern können, indem Sie Beispiele für jede Tabelle angeben, die nach jedem Joins erstellt wird. Danke im Voraus. –