Mysql 仅返回多个重复父id的Child表上最后插入的父id

Mysql 仅返回多个重复父id的Child表上最后插入的父id,mysql,sql,greatest-n-per-group,Mysql,Sql,Greatest N Per Group,我正在尝试获取childs表上最后插入的父id的值,然后加入 祖父母表以获取财产及其总数 以下是我的表格结构: parents +------------ |pid | item | +----+------+ | 1 | ite1 | | 2 | ite2 | +-----------+ childs +-------------+ | cid | pid | +------+------+ | 1 | 1 | -- not | 2 | 1 | ---- ro

我正在尝试获取childs表上最后插入的父id的值,然后加入 祖父母表以获取财产及其总数

以下是我的表格结构:

parents
+------------
|pid | item |
+----+------+
| 1  | ite1 |
| 2  | ite2 |
+-----------+

childs
+-------------+
| cid  | pid  |
+------+------+
| 1    | 1    | -- not
| 2    | 1    | ---- row to be selected(last inserted to join grandparents)
| 3    | 2    | -- not 
| 4    | 2    | ---- row to be selected(last inserted to join grandparents)
+-------------+

grandparents
+----------------------+
| gid | cid | property |
+-----+-----+----------+
| 1   | 1   | 1200     |
| 2   | 1   | 1500     |
| 3   | 2   | 101      |
| 4   | 2   | 303      |
| 5   | 3   | 600      |
| 6   | 3   | 10       |
| 7   | 4   | 335      |
| 8   | 4   | 250      |
+----------------------+
结果

+----------------------------+
| item   | cid  |  property  |
+--------+------+------------+
| ite1   | 2    | 101        |
| ite1   | 2    | 303        |
| ite1   | 4    | 335        |
| ite1   | 4    | 250        |
+----------------------------+

Total property results : sum(101 + 303 +335 + 250) =   989
我尝试了这个查询,但返回/包括导致 整个祖父母表的总数

query:

SELECT g.property from grandparents g
join childs c on g.cid = c.cid
join parents p on c.pid = p.pid
where c.pid in (select DISTINCT pid from childs) and c.pid = 1 

您可以尝试使用子查询获取
MAX(cid)
,然后通过子查询的
cid
JOIN

SELECT g.property 
from grandparents g
join (
    SELECT pid ,MAX(cid) cid
    FROM childs 
    GROUP BY pid  
) c on g.cid = c.cid
join parents p on c.pid = p.pid

您可以尝试使用子查询获取
MAX(cid)
,然后通过子查询的
cid
JOIN

SELECT g.property 
from grandparents g
join (
    SELECT pid ,MAX(cid) cid
    FROM childs 
    GROUP BY pid  
) c on g.cid = c.cid
join parents p on c.pid = p.pid

您的mysql版本是什么?您好,我正在使用mysqlnd 7.4.5您的mysql版本是什么?您好,我正在使用mysqlnd 7.4.5非常感谢!这个解决方案很好@D-shih非常感谢!此解决方案在D-Shih中效果良好