我想結合幾個SQL查詢來減少執行的查詢數量並希望同時提高性能。結合SQL查詢簡化和性能增益
我有很多產品,分爲幾類。一些產品有爲他們寫的文章(大多數不會)。此刻,我獲取所有產品類別有點像這樣...
// * used here to keep things simple
SELECT * FROM products WHERE iCategory=23;
然後,在結果列表中的每個產品我做這樣的額外查詢...
SELECT COUNT(*) FROM articlelinks WHERE iProduct=xxx;
如果產品有一個或多個物品,我可以在旁邊放一個小圖標。
我可以將這些結合到一個查詢中,該查詢將爲每個產品計數,包括計數爲零的產品。我所有的嘗試都會產生一個列表,其中只包含帶有文章的產品。
我正在使用MySql和PHP。
我在這裏有幾個正確的答案,所以謝謝大家。我接受這個解決方案,因爲這個解決方案更容易適用於現有的代碼,儘管其他解決方案也一樣正確。 –
(一如既往)最好用'EXPLAIN SELECT ....'檢查查詢,看看你是否有適合這個查詢的索引。 http://dev.mysql.com/doc/refman/5.0/en/using-explain.html – VolkerK