【发布时间】:2012-08-10 00:25:52
【问题描述】:
我在 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 上插入(显然 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 的消息,我也想显示这些消息... 我该怎么做?
希望你能帮助我 谢谢
【问题讨论】:
-
那是左连接而不是内连接
标签: sql count group-by inner-join