[英]Granddaughter of a tree SQL Query
誰能幫我寫出此特定輸出的sql代碼,請:
列出位於同一位置的樹(即tr_loc值相同),其中一棵樹是另一棵樹的孫女。 表數據
這是我想出的,但是我確定這是錯誤的:
SELECT tr_loc a, tr_loc b, Tr_numb, Tr_forest
FROM Tree
WHERE a.tr_loc = b.tr_loc
AND a.TR_parent = b.Tr_numb;
我認為這就是您要查詢的內容:
SELECT
a.tr_numb AS granddaughter
,c.tr_numb AS grandfather
,a.tr_loc
,a.Tr_forest
FROM
Tree a, Tree b, Tree c
WHERE
a.tr_parent = b.tr_numb
AND b.tr_parent = c.tr_numb
AND a.tr_forest = c.tr_forest
AND a.tr_loc = c.tr_loc
注意a
, b
和c
是表Tree
別名。 那是一種自我加入 。 我將在此處保留該查詢,以便您可以嘗試查看哪里出錯了。
但是,我不建議使用該語法進行JOIN。 最好學習更明確的語法。 這是我編寫查詢的方式:
SELECT
Tree.Tr_numb AS tree
,Parent.Tr_numb AS parent
,Grandparent.Tr_numb AS grandparent
,Tree.tr_forest
,Tree.tr_loc
FROM
Tree
INNER JOIN Tree [Parent] ON (Parent.Tr_numb = Tree.Tr_parent)
INNER JOIN Tree [Grandparent] ON (Grandparent.Tr_numb = Parent.Tr_parent)
WHERE
Tree.Tr_loc = Grandparent.Tr_loc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.