我为附件创建了一个文件上传程序,AJAX会在将它们添加到电子邮件时上传它们。我有一个显示所有电子邮件附件的页面。但是,如果用户决定不将电子邮件另存为草稿,也不发送,则其附件仍在数据库中。
我仍希望在附件页面上显示非关联附件(没有电子邮件ID关联,因此不会JOIN
使用消息表)。
这是我当前的查询...
SELECT em.date, em.headers_from, em.subject, ea.filename
FROM email_attachments AS ea
LEFT JOIN email_messages AS em ON em.id=ea.id_email
WHERE em.id_user='1'
ORDER BY date DESC
答案 0 :(得分:1)
您正在检查邮件表em.id_user=1
。
因此,您没有获得所需的输出,将子句移动到连接条件。
喜欢这个::
SELECT em.date, em.headers_from, em.subject, ea.filename
FROM email_attachments AS ea
LEFT JOIN email_messages AS em ON em.id=ea.id_email and em.id_user='1'
ORDER BY date DESC
答案 1 :(得分:1)
原来我需要一个LEFT OUTER JOIN
。
SELECT * FROM email_attachments AS ea
LEFT OUTER JOIN email_messages AS em
ON ea.id_email = em.id
WHERE ea.id_user='1'
我遇到的视力表达可以在这里找到...
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html