2012-08-13 86 views
2

我對SQL下表:如何從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的消息,我還想顯示這些消息...... 我該怎麼做?

希望你能幫助我 感謝

+2

這將是一個左連接,而不是內連接 – Zeph 2012-08-13 18:19:09

回答

5

更改INNER JOINLEFT OUTER JOIN;這將從Mensajes中選擇所有記錄,即使它們在Archivos中沒有相關記錄。

+0

謝謝......它工作得很好.. =) – Victor 2012-08-13 19:13:23

相關問題