如何从 SQL 中的另一个表中获取计数?
Posted
技术标签:
【中文标题】如何从 SQL 中的另一个表中获取计数?【英文标题】:How to Get A Count From Another Table In SQL? 【发布时间】: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 的消息,我也想显示这些消息... 我该怎么做?
希望你能帮助我 谢谢
【问题讨论】:
那是左连接而不是内连接 【参考方案1】:将您的INNER JOIN
更改为LEFT OUTER JOIN
;这将从Mensajes
中选择所有记录,即使它们在Archivos
中没有相关记录。
【讨论】:
以上是关于如何从 SQL 中的另一个表中获取计数?的主要内容,如果未能解决你的问题,请参考以下文章