繁体   English   中英

从MYSQL中的2个表查询

[英]Query from 2 tables in MYSQL

我在MySQL中有两个表:

表格1

Week    From         Until
1    2015-04-01    2015-04-07
2    2015-04-08    2015-04-14
3    2015-04-15    2015-04-21
4    2015-04-22    2015-04-28

表2

Input_Date        Code
2015-04-10        123
2015-04-22        456
2015-04-25        123
2015-04-26        123
  1. 我使用此查询根据当前日期选择了当前星期:

    选择Week FROM table_1 WHERE(NOW()之间From AND Until

  2. 我需要选择“代码”并从表2中对其进行计数,其中“代码” = 123,而“ Input_Date”对应于当前的“周”。

*如果当前日期为2015-04-23,则“周” = 4

结果将是:

Week   Code  Count
 4     123     2

尝试-

SELECT t1.Week, t2.Code, COUNT(*) 
FROM table_1 t1 
LEFT JOIN table_2 t2
ON t2.Input_Date BETWEEN t1.From AND t1.Until
WHERE (NOW() BETWEEN t1.From AND t1.Until) 
AND t2.Code = 123

http://sqlfiddle.com/#!9/3d2a6/16

没有LEFT JOIN的另一种做同一件事的方式

SELECT a.week, b.code, count(a.week) 
FROM table_1 a, table_2 b
WHERE (b.input_date BETWEEN a.from AND a.until)
AND (NOW() BETWEEN a.From AND a.Until)
AND b.code = 123

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM