2
我會盡我所能解釋清楚。我試圖完成兩件事,但即使首先正確工作,也遇到了麻煩。Mysql - 總結多個連接表的數量
我有一個成員表具有多個表的外鍵的架構。最後,我將從大約10張表中抽取,這些表可能會或可能沒有特定成員的記錄。我正在努力獲得所有計數的總和。我的查詢如下所示:
SELECT (COUNT(tb1.member_id) + COUNT(tb2.member_id)) as total
FROM members m
LEFT JOIN table_1 tb1 ON tb1.member_id = m.member_id
LEFT JOIN table_2 tb2 ON tb2.member_id = m.member_id
WHERE m.member_id = 27
其中,27是我正在使用的測試帳戶的member_id。這不會產生準確的結果,我相信這是因爲左連接,它似乎在丟掉東西,即使每種記錄只有兩種,我也總共得到8個。如果我消除了其中一個左連接,那麼我會得到預期的結果。
有誰能告訴我應該怎麼做?
這是我的問題的一部分。第二個問題是,在其中一些情況下,我希望每個結果都計爲1或0,即使有2或3個相應的記錄。我正在尋找類似bool的結果,但沒有找到任何東西。任何人都可以提出一種方法來做到這一點
非常感謝您的閱讀,任何建議將非常感激。這可能是我以錯誤的方式接近這個問題,再次表示讚賞。
關於你的問題,你可以使用條件語句直接在SELECT子句中第二部分[HTTP:/ /vikrant_labde.blogspot.com/2005/02/mysql-ifnull-if-case-when-then-else.html],以便您檢查是否count> 0 –
非常感謝您,這正是我一直在尋找的。對於我選擇的布爾類型選項,我最終做了: – TheMethod
很高興提供幫助。爲了將來的參考,這種查詢稱爲「相關子查詢」。順便說一句。請將問題設置爲已回答,謝謝 –