Php 加入了两个表&;取得成果

Php 加入了两个表&;取得成果,php,mysql,join,left-join,right-join,Php,Mysql,Join,Left Join,Right Join,我在连接两个mysql表时遇到了一些问题&得到我想要的结果 我有两个表,用户表和时间表。用户表具有id和名称。时间表正在使用用户id和分钟数。我想获得所有用户的时间,并将name×列作为结果集。但对于某些特定日期,所有用户ID都不在时间表中。所以对于这样的用户,我需要空值 我尝试了几次查询,但每次都只得到times表中可用的用户ID的时间。未将其他用户id的时间设置为null:( &我也尝试过这个问题 SELECT `users`.`name`,SUM(`times`.`minutes

我在连接两个mysql表时遇到了一些问题&得到我想要的结果

我有两个表,用户表和时间表。用户表具有id和名称。时间表正在使用用户id和分钟数。我想获得所有用户的时间,并将name×列作为结果集。但对于某些特定日期,所有用户ID都不在时间表中。所以对于这样的用户,我需要空值

我尝试了几次查询,但每次都只得到times表中可用的用户ID的时间。未将其他用户id的时间设置为null:(

&我也尝试过这个问题

SELECT `users`.`name`,SUM(`times`.`minutesSpent`) AS `Total` ,CASE WHEN times.user_id IS NULL THEN 0 ELSE 1 END 
FROM `users` 
INNER  JOIN `times`  ON `users`.`id` = `times`.`user_id` AND `users`.`isTimeEnable` = 0   
WHERE DATE(`date`) = '2015-06-03' 
GROUP BY `users`.`name`
如果有人能帮我,那就太好了。
谢谢您的WHERE子句正在将左侧联接转换为内部联接。请尝试以下操作:

   SELECT `users`.`name`,SUM(`times`.`minutesSpent`) AS `Total` 
    FROM `users` 
    LEFT OUTER JOIN `times`  ON `users`.`id` = `times`.`user_id`   
      AND DATE(`date`) = '2015-06-03' 
    GROUP BY `users`.`name`

顺便说一下,如果输入少(20个字符)和更好的性能是你的事情,那么考虑以下内容:

SELECT u.name
     , SUM(t.minutesSpent) Total 
  FROM users u 
  LEFT 
  JOIN times t
    ON u.id = t.user_id   
   AND t.date BETWEEN '2015-06-03 00:00:00' AND '2015-06-03 23:59:59' 
 GROUP 
    BY u.name;
SELECT u.name
     , SUM(t.minutesSpent) Total 
  FROM users u 
  LEFT 
  JOIN times t
    ON u.id = t.user_id   
   AND t.date BETWEEN '2015-06-03 00:00:00' AND '2015-06-03 23:59:59' 
 GROUP 
    BY u.name;