我有以下关于 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))
Archivos
IdArchivo (int) PK NOT NULL
IdMensaje (int)
Nombre (varchar(200))
外键 Mensajes.IdMensaje ON 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
但是它只显示附加了文件的消息,而不是结果为 0 的消息,我也想显示这些消息...
我怎么做?
希望你能帮我
谢谢
改变你的INNER JOIN
to a LEFT OUTER JOIN
;这将从中选择所有记录Mensajes
即使他们没有相关记录Archivos
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)