我有一個祖父母 - > 父 - > 不同模型的子關系。
我正在嘗試創建一個 SQL 陳述句來回傳所有孩子,這些孩子是他們的父母和同一個祖父母的任何其他父母的唯一孩子。
我能得到的最接近的是以下查詢,它不起作用,但可能有助于闡明我的目的:
SELECT
COUNT(*) AS count_all,
grandparents.id AS grandparents_id
FROM `childs`
INNER JOIN `grandparents` ON `grandparents`.`id` = `childs`.`grandparents_id`
INNER JOIN `parents` ON `parents`.`id` = `childs`.`parents_id`
GROUP BY grandparents.id
HAVING (count("parents.id") > 1)
但不幸的是,這個查詢只抓取了一些正確的回應(在我的情況下 1 ),而不是全部。知道如何正確執行此查詢嗎?
uj5u.com熱心網友回復:
我認為您可以像這樣使用子表來做到這一點:
select c.*
from childs c
join (
select grandparents_id
from childs
group by grandparents_id
having count(*) = 1
) t on t.grandparents_id = c.grandparents_id
順便說一句,child 的復數形式是 children 而不是 childs。編輯:您當前的表格布局不允許一個孩子有一個以上的父母和一個祖父母。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358371.html
上一篇:一種顯示公共資產串列的方法
