我已经建立了一个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 发布于 2019-05-26 20:38:58
你需要一个LEFT join从email到attachments,因为有没有附件的电子邮件。
您使用的INNER join只显示有附件的电子邮件。
因此,将行替换为:
JOIN attachments使用
LEFT JOIN attachmentshttps://stackoverflow.com/questions/56317149
复制相似问题