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
符合,则必须以连接它们的方式进行。我遇到的困难是,即使
q
没有条目,我也希望date(mein.timestamp)
的条目位于其中,这就是为什么我使用左外部联接。不幸的是,在
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上匹配