2

我在 SQL 上有以下表格:

门萨耶斯

IdMensaje (int) PK NOT NULL
IdCliente (int)
CorreoCliente (varchar(100))
CorreosAdicionales (varchar(MAX))
Tema (varchar(100))
Mensaje (varchar(MAX))
Fecha (date)
Hora (time(5))

档案馆

IdArchivo (int) PK NOT NULL
IdMensaje (int)
Nombre (varchar(200))

外键 Mensajes.IdMensaje ON Archivos.IdMensaje

如果您想知道 Mensajes.IdCliente 是什么,是的,它与另一个表有一个外键,但这是另一回事

首先是介绍...我正在制作一个程序,您可以在其中发送电子邮件...当您发送电子邮件时,我将在 Mensajes 上插入所有数据,如果您在邮件上附加文件,它也会插入每个文件的存档(很明显,Archivos.IdMensaje 等于之前插入的 Mensajes.IdMensaje)

所以这是我的问题:我想在从 Mensajes 获取所有数据的地方进行查询,但还要添加另一列,其中将显示该消息附加了多少文件......我设法使用了一个查询,其中我确实得到了该数据(嗯,有点)

SELECT Mensajes.IdMensaje, COUNT(Archivos.IdArchivo) AS Expr1
FROM Mensajes INNER JOIN Archivos ON Mensajes.IdMensaje = Archivos.IdMensaje
GROUP BY Mensajes.IdMensaje

但是它只显示附加了文件的消息,而不是结果为 0 的消息,我也想显示这些消息......我该怎么做?

希望你能帮助我谢谢

4

1 回答 1

5

将您的更改INNER JOINLEFT OUTER JOIN; 这将选择所有记录,Mensajes即使它们在Archivos.

于 2012-08-13T18:19:41.907 回答