[英]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.