Mysql填充缺失的日期

Mysql填充缺失的日期,mysql,join,Mysql,Join,我有以下疑问 SELECT * FROM attend RIGHT OUTER JOIN noattend ON attend.date = noattend.date2 WHERE attend.date BETWEEN '2010-02-01' AND '2010-04-01' AND attend.customerid =1 ORDER BY date DESC LIMIT 0 , 30 这是一张有客人的桌子 noattend是一个表,每个日期都有一行(date2)。我按照其他问题中

我有以下疑问

SELECT * 
FROM attend
RIGHT OUTER JOIN noattend ON attend.date = noattend.date2
WHERE attend.date
BETWEEN '2010-02-01'
AND '2010-04-01'
AND attend.customerid =1
ORDER BY date DESC 
LIMIT 0 , 30
这是一张有客人的桌子 noattend是一个表,每个日期都有一行(date2)。我按照其他问题中的建议,将表右键连接到表中,以创建表中没有记录但仍然没有填充空值的值
非常感谢您的帮助

如果您说noattend是一个表,每个日期都有一行,您应该在WHERE子句中使用它:

WHERE noattend.date2 BETWEEN (.....
我认为使用左连接更清楚:

SELECT * 
FROM noattend
LEFT OUTER JOIN attend ON (attend.date = noattend.date2 AND attend.customerid =1)
WHERE noattend.date2
BETWEEN '2010-02-01'
AND '2010-04-01'
ORDER BY date DESC 
LIMIT 0 , 30

您需要去掉SELECT*并列出您的列名。在希望日期的位置,使用noattend.date2字段,而不是attribute.date。对于为填写“缺失”日期而创建的额外行,attent.date将为NULL(空白)

比如:

 SELECT attend.id, attend.name, noattend.date2
 FROM . . .  (continue your code here)

谢谢,我尝试了你的建议,但它似乎只是在拉几个额外的空行(我认为空行是好的,只要有日期在那里),我得到了我的25和你的30。有什么想法吗?很好,谢谢。最后一点必须在日期2描述前订购