php代码或sql查询,以获取基于两个表的过滤数据

时间:2015-05-13 14:52:44

标签: php mysql sql

我有两张桌子..

我的表格中的数据如下......

我需要sql查询,它显示上面两个表的预期输出...

holidayMaster

  id     Date
   1     12-04-2015

客户表

 Name    startingdate     coupondate
 A       12-03-2015      11-04-2015
 A       12-03-2015      11-05-2015
 A       12-03-2015      11-06-2015
 A       12-03-2015      11-07-2015
 A       12-03-2015      11-08-2015
 A       12-03-2015      11-09-2015

 B       13-03-2015      12-04-2015
 B       13-03-2015      12-05-2015
 B       13-03-2015      12-06-2015
 B       13-03-2015      12-07-2015
 B       13-03-2015      12-08-2015
 B       13-03-2015      12-09-2015

 C       14-03-2015      13-04-2015
 C       14-03-2015      13-05-2015
 C       14-03-2015      13-06-2015
 C       14-03-2015      13-07-2015
 C       14-03-2015      13-08-2015
 C       14-03-2015      13-09-2015

FOR EX - 在上面的客户表中..有18个不同的行ok ..Bcoz coupondate在所有行中都不同。

假设用户选择2015年4月1日至2015年4月31日期间的优惠券,请查询显示名称,开始日期,优惠券以及从01-04到31-04之间所选过滤器之间的所有日期。

并显示姓名,起始日期,优惠券以及所有日期以下的总数。

并且条件是如果假期主人在选定日期之间的某些天可用,则显示 - - - - - 所有天都不是1。

在下面的输出12-04-2015在假日大师中可用...所以这个显示 - - - - 所有日子以下..

所有1..31都是所选月份的日子。

plz帮助进行sql查询...

 SELECT CE.* FROM customer CE LEFT JOIN holidaymaster HM ON CE.coupondate = HM.date WHERE CE.created BETWEEN :fromdate AND :todate AND CE.coupondate not in (select date from holidaymaster) 

预期输出

 name   startingdate  coupondate  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  Total

 A      12-03-2015     11-04-2015 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1      31
 B      13-03-2015     12-04-2015 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 C      13-03-2015     13-04-2015 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1      31

0 个答案:

没有答案