Php MySQL连接查询在不同的数据库上提供不同的结果
我正在我的机器上本地安装的数据库上运行查询,得到的结果与在AWS RDS数据库上运行时的结果不同。 我正在跑步:Php MySQL连接查询在不同的数据库上提供不同的结果,php,mysql,Php,Mysql,我正在我的机器上本地安装的数据库上运行查询,得到的结果与在AWS RDS数据库上运行时的结果不同。 我正在跑步: SELECT SUM(Hours) AS 'TotalHours', Username, Name, Project_Name, Project_Ref, (37.5-SUM(Hours)) AS 'Missing' FROM bookings b JOIN projects p ON b.Project_ID=p.Project_ID RIGHT JOIN users u
SELECT SUM(Hours) AS 'TotalHours', Username, Name, Project_Name, Project_Ref, (37.5-SUM(Hours)) AS 'Missing'
FROM bookings b
JOIN projects p ON b.Project_ID=p.Project_ID
RIGHT JOIN users u ON b.User_ID=u.User_ID
WHERE ((Date BETWEEN '2017-07-01' AND '2017-07-30') OR Date IS NULL)
GROUP BY u.User_ID
在本地运行时,我会从用户表中返回所有条目,即使他们没有在预订表中进行预订
当在我的服务器数据库上运行时,我只会返回已预订的用户,在进行右连接时不会像预期的那样输入。尝试使用
左连接
,而不是右连接
,并将日期
标准放在on
子句中:
SELECT SUM(Hours) AS 'TotalHours', Username, Name, Project_Name, Project_Ref, (37.5-SUM(Hours)) AS 'Missing'
FROM users AS u
LEFT JOIN bookings AS b ON b.User_ID = u.User_ID AND b.DATE BETWEEN '2017-07-01' AND '2017-07-30'
LEFT JOIN projects AS p ON b.Project_ID=p.Project_ID
我怀疑问题与
用户
和预订
表之间的内部联接
和项目
有关。那么您的RDS也是MySQL吗?您确定要使用相同的数据库版本吗?检查两个数据库。。