簡體   English   中英

聯接/查詢自引用“孫代”表

[英]Joining/Querying Self-Referential “Grandchildren” Tables

說我有一張桌子,如下:

國家

| ID    | Name    | Population | Continent |

國家是自我參照的,並具有關聯表:

聯盟

| country_id | ally_id    |

我知道我需要使用'AS'關鍵字連接表,例如c1,c2等。但是我無法完全理解如何為孫輩,曾孫輩等等做這件事。

例如,我將如何編寫SQL來獲得其盟友人口超過5000萬的國家?

我是根據代碼中定義的模型生成此SQL的,因此需要能夠支持這種行為直至用戶定義的深度。

謝謝!

您的示例的查詢是

SELECT c1.name
FROM countries AS c1
   JOIN alliances AS a ON c1.id = a.country_id
   JOIN countries AS c2 ON a.ally_id = c2.id
WHERE c2.population > 50000000;

如果這是一個家庭作業問題(看起來像一個問題),那么您已經找到了為您解決問題的傻瓜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM