mysql - 具有两个条件的 LEFT OUTER JOIN 无法正常工作

标签 mysql sql left-join

SELECT mein.person_id AS per_Id, DATE( mein.timestamp ) AS dates, SUM( nr_pos ) AS pos, SUM( nr_neg ) AS neg, SUM( nr_neu) AS neu, 
op , clo  
FROM base1.q  
LEFT JOIN base1.mein ON DATE( mein.timestamp ) = q.date  
AND mein.person_id = q.id  
WHERE mein.person_id = 1  
GROUP BY q.date, q.id  
ORDER BY mein.person_id, q.date DESC   

上面的代码应该做以下事情: 我想连接我的数据库 base1 中的两个表,即 qmein。如果列 date(mein.timestamp) 和列 q.date 重合并且如果列 mein.person_idq.id 列重合。 我遇到的困难是即使 date(mein.timestamp) 没有条目,我也希望 q 的条目在那里,这就是为什么我使用左外连接。
不幸的是,仍然有一些行被排除在 date(mein.timestamp) 没有条目但 q.date 有条目的地方。我怎样才能避免这种情况发生并将这些行保留在联合表中?

谢谢!

最佳答案

改变

WHERE mein.person_id = 1 

WHERE q.id = 1

因此您从 base1.q 中获取所有行,其中 q.id = 1,并且,如果存在任何行,则从 base1.mein 中获取与 mein.timestamp 和 mein.person_id 匹配的相应行

关于mysql - 具有两个条件的 LEFT OUTER JOIN 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200265/

相关文章:

MySQL - 正确的人口

mysql - 如何在 SQL 中将多行合并为一行?

java - 通过 arraylist JAVA 使用主键添加和检索 MySql 数据库数据

mysql - 选择包含几乎重复的行

mysql - SQL 联盟 : Selecting id of file_up table

sql - 将表一值与 postgresql 中的两个不同表进行比较

php - 在一个 MySQL 查询中最多可以加入多少张表?

linq - 按多列分组并计数

mysql - 无法在 MySQL 中修剪() Char(195)

mysql - 查询获取数字显示了多少次