[英]SQL COUNT entries related to 3 tables
我為這兩個表運行了此sql語句:tblStations和tblThreads,用於計算每個線程中Station的數量:
SELECT tblThreads.*, (SELECT COUNT(*) FROM tblStations WHERE tblStations .fldThreadID=tblThreads.fldID) AS TotalStationsInThread FROM tblThreads;
然后為系統中的每個線程顯示tblThread.Name和TotalStationsInThread。
現在,我在此層次結構中添加了另一個表(tblUsers):每個線程可以有許多用戶,並且每個用戶可以有許多工作站。 這三個表通過以下方式相互關聯:
tblStations.fldUserID=tblUsers.fldID > tblUsers.fldThreadID=tblThreads.fldID.
因此,我將SQL查詢更改為:
SELECT tblThreads.*, (SELECT COUNT(*) FROM tblStations WHERE tblStations.fldUserID=tblUsers.fldID AND tblUsers.fldThreadID=tblThreads.fldID) AS TotalStationsInThread FROM tblThreads;
但是現在我收到此消息:“沒有為一個或多個必需參數提供值”。 就像數據庫無法通過tblUsers將表tblStation與tblThreads連接起來...
關於如何計算與每個線程連接的所有用戶連接的站數,有任何幫助嗎?
這是MS Access Jet數據庫引擎的正確答案:
SELECT tblThreads.*, (SELECT COUNT(tblStations.fldUserID) FROM tblStations INNER JOIN tblUsers ON tblStations.fldUserID = tblUsers.fldID WHERE tblUsers.fldThreadID = tblThreads.fldID) AS TotalStationsInThread FROM tblThreads;
非常感謝Gordon Linoff的回答。
您需要在from
子句中包含tblUsers
:
SELECT tblThreads.*,
(SELECT COUNT(*)
FROM tblUsers inner join
tblStations
on tblStations.fldUserID = tblUsers.fldID
WHERE tblUsers.fldThreadID = tblThreads.fldID
) AS TotalStationsInThread
FROM tblThreads;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.