0
我有一個「更新」表中可以包含重複的描述,我想用自己的計數一起返回重複的,所以我創造了這個查詢:查詢返回重複的記錄頻率
SELECT description, count(description) AS count
FROM updates INNER JOIN participations ON participations.update_id = updates.id
INNER JOIN customer ON customer.id = participations.customer_id
INNER JOIN garages ON garages.id = customer.garage_id
WHERE (updates.created_at >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH))
AND garages.`id` = 1
GROUP BY description
ORDER BY count desc
LIMIT 10
計數返回的不是我所期待的。我相信之所以會這樣,是因爲許多客戶可以共享更新,所以我得到重複的原因是表中存在實際的重複項,並且因爲同一更新記錄多次返回。如何修復查詢以便它只計算更新表中的實際重複描述字段。由於
這是偉大的尼古拉,工作一種享受,謝謝。我想知道你是否會善意地通過它談論我?特別是「EXISTS」和「select null」謝謝 – pingu 2012-02-29 22:13:03
不客氣。存在測試,如果子查詢返回任何記錄,所以我們使用它來確保「參與者」來自車庫1.子查詢通過過濾參與連接到主查詢.update_id = updates.id。至於null,我們實際上並不需要這些記錄中的任何數據,只是它們的存在;因此我們返回單列的空值。這可能並不是重要的性能方面,因爲sql引擎不會選擇任何數據,但留給自己一個提醒,我們實際上並沒有選擇任何東西。 – 2012-03-01 00:05:02
非常感謝! – pingu 2012-03-01 08:13:56