表不为空时返回记录

时间:2012-08-31 17:38:31

标签: mysql sql date between

我是SQL新手,只能做最基本的SQL查询,并且对此问题表示感谢。

MySQL数据库包含一个CUSTOMER表和一个PURCHASES表。如果客户已进行购买,则在PURCHASES表中将有一个或多个序列号和购买日期。

我想知道如何在两个日期之间为每位客户退回客户名称,序列号和购买日期。

以下是表格的说明:

购买

  • CUSTOMER_ID
  • SERIAL_NUMBER
  • 购买日期

CUSTOMER

  • CUSTOMER_ID
  • CUSTOMER_NAME
  • 客户地址

2 个答案:

答案 0 :(得分:3)

这是:

select c.customer_name, p.serial_number, p.purchase
from purchases p, customers c
where p.customer_id = c.customer_id and
p.purchase between '2012-08-27' and '2012-08-31'

SQL Fiddle就在这里,您可以使用它:http://sqlfiddle.com/#!2/e8002/3

答案 1 :(得分:1)

你需要JOIN这两张桌子;请参阅MySQL文档以了解加入概念。

您需要限制两个日期之间的购买查询:

WHERE purchase BETWEEN 'date1' AND 'date2'

这将告诉您客户ID。有了这个,你可以选择Customers表,所以:

SELECT customer.customer_name,
       purchases.serial_number,
       purchases.purchase
    FROM customer
    JOIN purchases ON (customer.customer_id = purchases.purchase_id)
    WHERE purchases.purchase BETWEEN '2012-01-01' AND '2012-08-01';