如何从SQL中的另一个表获取计数?

Vic*_*tor 2 sql group-by inner-join count

我在SQL上有以下表格:

Mensajes

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

Archivos

IdArchivo (int) PK NOT NULL
IdMensaje (int)
Nombre (varchar(200))
Run Code Online (Sandbox Code Playgroud)

外国钥匙Mensajes.IdMensaje,Archivos.IdMensaje

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

首先介绍...我正在制作一个程序,您可以在其中发送电子邮件...当您发送电子邮件时,我会在Mensajes上插入所有数据,如果您在邮件上附加了文件,它也会插入每个文件的Archivos(显然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
Run Code Online (Sandbox Code Playgroud)

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

希望你能帮助我谢谢

Lit*_*les 5

改变你INNER JOINLEFT OUTER JOIN; 这将选择所有记录,Mensajes即使他们没有相关记录Archivos.