1

这是我的 MySQL 查询,用于显示文件夹中的电子邮件(当然是瘦身)...

SELECT em.id
FROM email_messages AS em 
LEFT JOIN email_attachments AS ea on ea.id_email=em.id 
WHERE em.id='4'

问题是,如果一封电子邮件有多个附件,同一封电子邮件将出现两次,例如email_message带有id4 的电子邮件。

在不更改 SQL 表结构的情况下,如何返回任何值(例如 1)来表示电子邮件有附件而不返回重复行?

4

1 回答 1

1

添加DISTINCT以仅获取唯一值,

SELECT DISTINCT em.id
FROM   email_messages AS em 
       LEFT JOIN email_attachments AS ea 
          ON ea.id_email = em.id 
WHERE  em.id = '4'

GROUP BY从句

SELECT em.id
FROM   email_messages AS em 
       LEFT JOIN email_attachments AS ea 
          ON ea.id_email = em.id 
WHERE  em.id = '4'
GROUP  BY em.id
于 2013-09-29T16:08:40.427 回答