【发布时间】:2014-07-10 11:22:17
【问题描述】:
我有 3 个表 - 用户表、book1 表、book2 表。
用户表是这样的——
user_id | gender | l_name | f_name
-------- -------- -------- -------
1 male Doe Jon
2 female Xu Jini
3 female Din Jane
book1 表 -
b_id | user_id | amount | date
----- --------- -------- ----------
1 3 98.30 2014-05-14
2 1 65.70 2014-05-07
3 2 14.40 2014-05-06
4 2 55.60 2014-05-07
book2 表 -
b_id | user_id | amount | date
----- --------- -------- ----------
1 2 38.20 2014-04-06
2 3 84.40 2014-04-02
3 3 31.30 2014-04-12
4 1 74.40 2014-05-06
用户提供一个日期范围作为输入,我想计算该日期范围的销售计数(COUNT)、总金额(SUM)和最大日期(MAX)。在此之后,我想将此数据连接到用户表并使用 user_id 获取性别和名称。
我编写此查询是为了从 book1 和 book2 表中获取给定日期范围内的数据-
SELECT * FROM book1
WHERE date between '2014-04-02' and '2014-05-15'
UNION ALL
SELECT * FROM book2
WHERE date between '2014-04-02' and '2014-05-15'
ORDER BY customer_id;
由此我得到 book1 和 book2 表中满足日期范围的所有行。现在我应该使用子查询或其他东西来达到目标。我认为 sql 应该小心,直到从书表中获取计数、总和和最大值。然后应该在 PHP 中完成与用户表的连接。我在正确的道路上吗?一切都可以用 SQL 完成吗?我有点迷路了。
【问题讨论】:
-
不,您可以在 sql 级别完成所有操作,而无需涉及 PHP。你只需要了解sql joins