我有4個表: 域: :有很多=>頻道 :的has_many =>銷售 :的has_many =>訪問查詢與nexted聯接採取了很長一段時間
我試圖讓所有我的域,頻道數,銷售數和訪問人數在此查詢每個域:
SELECT
kd.id, kd.domain,
COUNT(distinct kc.id) AS channels_count,
COUNT(distinct kv.id) AS visits_count,
COUNT(distinct kv.ip_address) AS visitors_count,
COUNT(distinct ks.id) AS sales_count
FROM
domains AS kd
LEFT JOIN
channels AS kc
ON(kc.domain_id=kd.id)
LEFT JOIN
sales AS ks
ON(ks.channel_id=kc.id)
LEFT JOIN
visits AS kv
ON(kv.channel_id=kc.id)
GROUP BY kd.id
我有銷售拜訪表,沒有什麼大幾千元的記錄,但我的查詢需要永遠。它永遠不會回來。任何想法爲什麼?
db:postgresql
用於記錄的金額,你需要實現索引。 http://www.postgresql.org/docs/7.4/static/indexes.html – levi 2012-07-27 01:02:09
您是否在相關表「kc.domain_id,kv.channel_id,kv.channel_id'上定義了外鍵,然後是索引? – 2012-07-27 01:03:00
是的,我在所有連接點上都有索引。一個解釋顯示了過多的記錄被拉,所以我想這是錯誤的事實,我必須加入我的頻道表與2多個表,但我似乎無法找到任何錯誤。 – 2012-07-27 01:04:39