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
中的两个表,即 q
和 mein
。如果列 date(mein.timestamp)
和列 q.date
重合并且如果列 mein.person_id
和 q.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/