我有一条SQL语句,该语句联接3个表,然后产生一些结果。
https://www.db-fiddle.com/f/v1zExsp4ZVnnq1hQYJKcXY/0
问题:DB Fiddle实际上给了我正确的结果,但我的数据库:版本:10.0.38-MariaDB-提供了不同的结果。
删除sale_category='Non-Productive'
过滤器后,两个DB均显示全部48行。
但是-存在sale_category='Non-Productive'
过滤器时,只有DB Fiddle可以正确过滤15行数据。
我的MariaDB过滤器错误地导致了32行数据。 (请参阅附件)
我的数据库正在显示应过滤的结果(例如,任何带有sale_type = CUSTOMER的行),但将它们显示为“非生产性”,我不知道为什么(尤其是在DB Fiddle中进行测试并看到所需结果之后)< / p>
答案 0 :(得分:0)
在您的数据中找到unprod_hrs = 0时,“非生产型”销售类型没有匹配项:
SELECT tech,name,rd.rate,unprod_hrs,st.sale_category
FROM ReportData rd
INNER JOIN SaleTypes st
ON st.sale_type=rd.name
WHERE report_id='165141' AND unprod_hrs=0 AND rd.line_type=2;
MariaDB在您的版本10.0.38中返回不正确的结果
还可以删除ReportHeader上的两个JOINS,因为它们不在查询中。