我是新来的,所以如果有什么我做错了我道歉。
我正在尝试在MYSQL上获得一些表结果我有这两个表:
Table_1 (id, date_from, date_to)
Table_2 (date, x)
我需要做的是,对于表1中的每条记录,获取下一个结果
(id,date_from,date_to,sum(x))
例如,如果我有这样的记录:
表1:
1|date1|date5
2|date3|date4
3|date2|date5
表2:
date1|7
date2|5
date3|1
date4|4
date5|3
查询应该显示:
1|date1|date5|20
2|date3|date4|5
3|date2|date5|13
我到目前为止的查询不起作用,是这样的:
Select
a.id,
a.date_from,
a.date_to,
sum(b.x)
from table1 a
inner join table_2 b
on b.date >= a.date_from
and b.date <= a.date_to
谢谢!
答案 0 :(得分:0)
尝试添加“group by a.date_from”,以便您的语句变为:
从表1中选择a.id,a.date_from,a.date_to,sum(b.x)b.date&gt; = a.date_from和b.date&lt; = a.date_to中的内连接table_2 b 按a.date_from分组
答案 1 :(得分:0)
如果a.id是唯一键,那么:
SELECT
a.id,
a.date_from,
a.date_to,
SUM(b.x)
FROM table1 a
LEFT JOIN table_2 b
ON b.date >= a.date_from
AND b.date <= a.date_to
GROUP BY a.id
答案 2 :(得分:0)
你快到了。您只需要按id,date_from和date_to
进行分组Select
a.id,
a.date_from,
a.date_to,
sum(b.x)
from table1 a
inner join table_2 b
on b.date >= a.date_from
and b.date <= a.date_to
group by a.id, a.date_from, a.date_to