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_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上匹配

10-08 16:19