0
我有一个查询,我想优化。我确信这个查询可以改进。mysql链接表+加入+数
查询的结果应该返回具有filter_id 22和2并且显示'yes'的产品的数量。
SELECT COUNT(product_id) AS Total
FROM kkx_filters_products
LEFT JOIN kkx_products ON product_id = kkx_products.id
WHERE filter_id IN (2,22)
AND kkx_products.display = 'yes'
GROUP BY product_id
HAVING count(product_id) = 2
上述查询返回每个记录10230与外地达尔和值2
我想一个结果与现场总与价值10230.
我已经包含的结构查询中使用的表。
EXPLAIN kkx_filters;
Field Type Null Key Default Extra
id int(11) unsigned NO PRI NULL auto_increment
name varchar(50) NO
EXPLAIN kkx_filters_products;
Field Type Null Key Default Extra
filter_id int(11) NO PRI 0
product_id int(11) NO PRI 0
EXPLAIN kkx_products;
Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
title varchar(255) NO
display enum('yes','no') NO yes
'...作为行的计数...一个结果与结果'...呵呵? – 2012-01-17 14:47:05
*“应该返回具有filter_id 22 **和** 2的产品的数量”*但“HAVING count(product_id)= 1”表示22 **或** 2.这是什么原因? – 2012-01-17 14:51:03
抱歉,由于缺乏清晰度,我更清楚地阐述了我的问题 – 2012-01-17 21:14:47