【发布时间】:2015-12-26 03:56:33
【问题描述】:
想象一下这是我的数据库表:
Table #1: Parent
╔══════════╦═════════════════╦═══════╗
║Child_id ║Primary key - AI ║ int ║
╠══════════╬═════════════════╬═══════╣
║parent_id ║Index-Forign_key ║ int ║
║══════════╬═════════════════╬═══════╣
║title ║ - ║varchar║
╚══════════╩═════════════════╩═══════╝
Table #2: Paid
╔══════════╦═════════════════╦═══════╗
║Paid_id ║Primary key - AI ║ int ║
╠══════════╬═════════════════╬═══════╣
║child_id ║Index-Forign_key ║ int ║
║══════════╬═════════════════╬═══════╣
║paid_price║ - ║int ║
╚══════════╩═════════════════╩═══════╝
这是我的表格值:
Table: parent (data)
╔══════════╦══════════╦═══════╗
║ Child_id ║parent_id ║ title ║
╠══════════╬══════════╬═══════╣
║ 1 ║25 ║bla-bla║
║══════════╬══════════╬═══════╣
║ 2 ║25 ║bla-bla║
║══════════╬══════════╬═══════╣
║ 3 ║5 ║bla-bla║
║══════════╬══════════╬═══════╣
║ 4 ║25 ║bla-bla║
╚══════════╩══════════╩═══════╝
Table: paid (data)
╔══════════╦══════════╦════════════╗
║ Paid_id ║Child_id ║ paid_price ║
╠══════════╬══════════╬════════════╣
║ 1 ║1 ║100 ║
║══════════╬══════════╬════════════╣
║ 2 ║2 ║250 ║
║══════════╬══════════╬════════════╣
║ 3 ║1 ║35 ║
║══════════╬══════════╬════════════╣
║ 4 ║1 ║17 ║
╚══════════╩══════════╩════════════╝
我有一个查询,但它没有按我想要的方式工作。
这是我的查询:
SELECT parent.Child_id, parent.parent_id, SUM( paid_price )
FROM paid
JOIN parent ON parent.Child_id = paid.Child_id
WHERE parent.parent_id =25
这只是返回一行!但我希望从parent 表中返回(获取)所有child_id,然后通过该ID 返回它们每个的总和paid_price。
现在我刚刚返回的查询:
╔══════════╦══════════╦════════════╗
║ Child_id ║Parent_id ║ paid_price ║
╠══════════╬══════════╬════════════╣
║ 1 ║25 ║152 ║
╚══════════╩══════════╩════════════╝
但是你可以看到parent_id = 25 有一些孩子,但我写的查询只返回其中一个(只是第一个)!我想要 paid_price 的返回总和,所有 parent_id 编号为 25:
╔══════════╦══════════╦════════════╗
║ Child_id ║Parent_id ║ paid_price ║
╠══════════╬══════════╬════════════╣
║1 ║25 ║152 ║
║══════════╬══════════╬════════════╣
║2 ║25 ║250 ║
╚══════════╩══════════╩════════════╝
请尝试查询,我认为要得到我需要的东西应该很难查询!
我应该如何更改查询以获得所需的结果? (我认为我应该更改整个查询)
【问题讨论】:
-
我怀疑 SUM() 函数,也许吧?尝试添加
GROUP BY Child_id