我建立了一个具有多个表(帐户,附件,类别,电子邮件,邮箱,原始文件,设置,标签)的MYSQL数据库。唯一需要关注的两个表是电子邮件和附件。 如果电子邮件具有附件,则电子邮件和附件共享一个ID。因此,我想显示按日期排序的两个表中的所有结果。
但是,使用下面的代码,仅显示附件表(大约1500个实例),而我想显示附件中的1500个实例和电子邮件表中的所有60K实例
SELECT
email.from_fld,
email.subj_fld,
email.date_fld,
email.mailto,
email.body_fld,
email.numAttach,
email.attachNames,
email.attachText,
attachments.filename_fld,
attachments.encode_fld,
attachments.attach_fld,
email.id,
attachments.id AS id_0
FROM
email
JOIN attachments
ON email.id = attachments.id
ORDER BY
email.date_fld ASC
我希望两个表的所有内容都按日期显示
附件表说明
id int(11) NO MUL
type_fld varchar(127) NO
filename_fld varchar(127) NO
encode_fld int(11) YES 0
attach_fld longblob NO
电子邮件表说明
id int(11) NO PRI auto_increment
from_fld varchar(255) NO MUL
to_fld mediumtext NO
subj_fld mediumtext NO
date_fld datetime NO
mailbox varchar(255) NO
mailto varchar(127) NO
body_fld longtext NO
numAttach int(11) NO 0
attachNames mediumtext NO
attachText longtext NO
headings mediumtext NO
答案 0 :(得分:1)
您需要从email
到attachments
的{{3}},因为有些电子邮件没有附件。
您使用的LEFT join
仅显示带有附件的电子邮件。
因此,请替换行:
JOIN attachments
使用
LEFT JOIN attachments