【发布时间】:2021-12-06 07:18:07
【问题描述】:
请我在下面这个查询的正确查询方面需要帮助...
SELECT
compute_num,
SUM(`shar_cr`) AS shar,
SUM(`thri_cr`) AS thri,
SUM(`vol_cr`) AS volun
FROM `member_transacting`
WHERE date BETWEEN '$from_date' AND '$end_date'
RIGHT JOIN regist_members ON member_transacting.compute_num=regist_members.m_compute_num
ORDER BY date DESC
基本上,我想选择两个日期之间数据库表中的值的总和。同时,我还想使用他们的通用标识符从注册成员表中获取相同的用户信息,在本例中是他们的计算机号码。
预期结果
我希望能够从 member_transacting 表中获取值的总和,并从 regist_members 表中获取成员姓名和电话号码。
我已经在 phpmyadmin 上尝试了上述查询,但没有成功。相反,它抛出了错误,即查询错误。请帮忙。
到目前为止我的进步 以下来自 Abronsius 教授指南的代码对我有用
我只需要通过添加 GROUP BY 来调整它,并从 regist_members 表中请求特定字段(full_name)
SELECT t.compute_num,
m.full_name,
SUM( t.`shar_cr`) AS shar,
SUM( t.`thri_cr`) AS thri,
SUM( t.`vol_cr`) AS volun
FROM `member_trans` t
JOIN `regist_members` m ON t.`compute_num`=m.`m_computer_no`
WHERE t.`date` BETWEEN '$from_date' AND '$end_date'
GROUP BY t.`compute_num`
ORDER BY t.`date` DESC
尽管上面的代码已经为我提供了我想要的大约 90% 的内容,但我还不能将其发布为答案,因为我仍然需要一些帮助才能使其完美。
我需要的帮助
当然,上面的代码运行良好;它从两个表中获取所需的结果;但如果我一次从 regist_members 表中请求多个数据(例如 m.full_name、m.member_bank_name),它就不起作用。只有当我保留上面的代码时它才有效。它不允许我请求比上述代码中更多的数据。请有人指导。
【问题讨论】:
-
join应该放在where子句之前,您会发现使用表aliases比在连接条件中使用表名更容易(?) -
@ProfessorAbronsius 你能和我分享一下正确的结构吗?
-
@ProfessorAbronsius 让我试着回复你
-
请提供您的表格结构、示例数据和所需结果minimal reproducible example
-
表是两张,数据很多,能指导我如何提供表结构吗?