我試圖選擇一個包含多個連接的表,一個用於使用COUNT的註釋數量,另一個用SUM選擇總的投票值,問題在於兩個連接互相影響,而不是顯示:mysql:多重連接問題
3票2條評論
我得到3 * 2 = 6票和2條* 3評論
這是我使用的查詢:
SELECT t.*, COUNT(c.id) as comments, COALESCE(SUM(v.vote), 0) as votes
FROM (topics t)
LEFT JOIN comments c ON c.topic_id = t.id
LEFT JOIN votes v ON v.topic_id = t.id
WHERE t.id = 9
這不會爲數據庫帶來更多負載和更多工作嗎?或者數據庫難以使用多個連接來分離它們? – Dennis 2009-08-09 18:17:18
大多數數據庫都有數據和索引頁面的內部緩存,所以它可能不成問題。此外,補償笛卡爾產品所需的工作可能會更糟糕。部分取決於您的特定系統和數據,因此最準確的答案需要在*您的*環境中進行測試。 – 2009-08-09 19:09:22