我有2个表使用与PK相同的ID, 我在table2中提出了“哪里”问题,并遇到了问题
现在我要使用获得的ID并查看表1中的名称
table 1 (Users) is
ID Name
1 David
2 Guy
3 Robert
4 Helen
table 2 (history_Users_daily )is
ID ADDED_Money User_Date
1 0 2019-02-07
1 1 2019-02-08
1 0 2019-02-10
2 0 2019-02-07
2 0 2019-02-13
3 5 2019-02-12
4 0 2019-02-12
4 0 2019-02-13
这就是我在表2中所做的:
SELECT ID,SUM(ADDED_Money) AS Total_Money_7_Days
from
v7.history_Users_daily
where ( com_id = '1' and User_DATE >= date(curdate() - 7) )
GROUP BY ID
HAVING Total_Money_7_Days < '2'
order by Total_Money_7_Days ;
运行此代码时,我看到所有ID小于2的ID
这是我得到的结果:
ID Total_Money_7_Days
1 1
2 0
4 0
现在我想根据表1看到每个ID的名称
所以在决赛中我会得到这个:
ID Name Total_Money_7_Days
1 David 1
2 Guy 0
4 Helen 0
我尝试了各种“加入”(例如我在google上找到的示例,但没有一个可用)
我需要做什么?
谢谢,
答案 0 :(得分:1)
select t2.Id, t1.Name, t2.Total_Money_7_Days
from users t1
Join (SELECT ID,SUM(ADDED_Money) AS Total_Money_7_Days
from
v7.history_Users_daily
where ( com_id = '1' and User_DATE >= date(curdate() - 7) )
GROUP BY ID
HAVING Total_Money_7_Days < '2'
order by Total_Money_7_Days
) t2
on t2.Id = t1.Id
答案 1 :(得分:1)
您可以直接JOIN
到Users
表:
SELECT h.ID, u.Name, SUM(h.ADDED_Money) AS Total_Money_7_Days
FROM history_Users_daily h
JOIN Users u ON u.ID = h.ID
WHERE ( com_id = '1' AND User_DATE >= date(curdate() - 7) )
GROUP BY h.ID, u.Name
HAVING Total_Money_7_Days < '2'
ORDER BY Total_Money_7_Days DESC
输出
ID Name Total_Money_7_Days
1 David 1
2 Guy 0
4 Helen 0