Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 显示31天的假期状态_Mysql_Case - Fatal编程技术网

Mysql 显示31天的假期状态

Mysql 显示31天的假期状态,mysql,case,Mysql,Case,我有这两张桌子 Leave Table from_date to_date user_id 2011-12-01 2011-12-01 1 2011-12-01 2011-12-07 2 2011-11-02 2011-11-04 3 user table id name 1 john 2 Caren 3 Sam 现在我需要以这种方式显示输出 NA

我有这两张桌子

Leave Table

from_date       to_date          user_id
2011-12-01    2011-12-01         1
2011-12-01    2011-12-07         2
2011-11-02    2011-11-04         3


user table
id      name
1       john
2       Caren
3       Sam
现在我需要以这种方式显示输出

NAME     1   2   3   4   5   6   7  ......up to 31 days
john     L       
Caren    L   L   L   L   L   L   L       
Sam          L   L   L   
那么,我们如何为它编写查询呢

任何建议都会有帮助。

这是给你的;-)


向查询中添加其他字段,并添加WHERE过滤器以选择准确的月份。

我认为可以简化,应该使用附加表和透视表。
SELECT
  u.*,
  IF(1 BETWEEN DAYOFMONTH(from_date) AND DAYOFMONTH(to_date), 'L', NULL) '1',
  IF(2 BETWEEN DAYOFMONTH(from_date) AND DAYOFMONTH(to_date), 'L', NULL) '2',
  IF(3 BETWEEN DAYOFMONTH(from_date) AND DAYOFMONTH(to_date), 'L', NULL) '3',

  IF(31 BETWEEN DAYOFMONTH(from_date) AND DAYOFMONTH(to_date), 'L', NULL) '31'
FROM test.user u
  JOIN `leave` l
    ON u.id = l.user_id