Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
我应该执行什么SQL查询来获得预期的结果集?_Sql_Postgresql - Fatal编程技术网

我应该执行什么SQL查询来获得预期的结果集?

我应该执行什么SQL查询来获得预期的结果集?,sql,postgresql,Sql,Postgresql,我无法得到我需要的结果:/这些是我的平板电脑。关于Postgresql table: logins table: users +------------------------+ +------------------+ | iduser | date | | iduser | name | |----------------------

我无法得到我需要的结果:/这些是我的平板电脑。关于Postgresql

       table: logins                              table: users
+------------------------+                 +------------------+
|   iduser  | date       |                 | iduser | name    |
|------------------------|                 |------------------|
|     1     |'2017-06-06'|                 |   1    | Joe     |
|------------------------|                 |------------------|
|     1     |'2017-06-06'|                 |   2    | Jane    |       
|------------------------|                 |------------------|
|     2     |'2017-06-07'|                 |   3    | Mary    |
|------------------------|                 +------------------+
|     3     |'2017-06-07'|
|------------------------|
|     3     |'2017-06-07'|
|------------------------|
|     3     |'2017-06-07'|
+------------------------+
我正在使用此查询:

SELECT name, date, count(*) FROM logins l
LEFT JOIN users u
ON u.iduser= l.iduser
GROUP BY 
u.name,l.date
ORDER BY 
l.date
这就是我得到的:

+-----------------------------------+
|  name    |    date      |   count |
|-----------------------------------|
| Joe      | '2017-06-06' |    2    |
|-----------------------------------|
| Jane     | '2017-06-07' |    1    |
|-----------------------------------|
| Mary     | '2017-06-07' |    3    |
+-----------------------------------+
但我真正需要从结果中得到的是:

+-----------------------------------+
|  name    |    date      |   count |
|-----------------------------------|
| Joe      | '2017-06-06' |    2    |
|-----------------------------------|
| Jane     | '2017-06-06' |    0    |
|-----------------------------------|
| Mary     | '2017-06-06' |    0    |
|-----------------------------------|
| Joe      | '2017-06-07' |    0    |
|-----------------------------------|
| Jane     | '2017-06-07' |    1    |
|-----------------------------------|
| Mary     | '2017-06-07' |    3    |
+-----------------------------------+

我该怎么办?请帮忙!!!非常感谢^^

在SQL Server和Postgres中:

获取
日期
用户
的所有组合,然后
左加入
登录

select 
    d.date
  , u.name
  , count(l.iduser) as login_count
from (select distinct date from logins) d
  cross join users u 
  left join logins l 
    on l.iduser=u.iduser 
   and l.date=d.date
group by d.date, u.name
rextester演示(sql server):

rextester演示(postgres):

返回:

+---------------------+------+-------------+
|        date         | name | login_count |
+---------------------+------+-------------+
| 2017-06-06 00:00:00 | Jane |           0 |
| 2017-06-07 00:00:00 | Jane |           1 |
| 2017-06-06 00:00:00 | Joe  |           2 |
| 2017-06-07 00:00:00 | Joe  |           0 |
| 2017-06-06 00:00:00 | Mary |           0 |
| 2017-06-07 00:00:00 | Mary |           3 |
+---------------------+------+-------------+

请标记您正在使用的DBMS我正在使用Postgresql