|
|
|
| есть 2 таблицы (упростил структуру чтобы было нагляднее)
CREATE TABLE `stores_products` (
`id_product` int(5) NOT NULL auto_increment,
`product_name` varchar(100) NOT NULL,
`product_show` enum('yes','no') NOT NULL default 'yes',
PRIMARY KEY (`id_product`),
) TYPE=MyISAM CHARACTER SET utf8
CREATE TABLE `stores_products_images` (
`id_image` int(6) NOT NULL auto_increment,
`image_show` enum('yes','no') NOT NULL default 'yes',
`id_product` int(5) NOT NULL,
PRIMARY KEY (`id_image`),
KEY (`id_product`)
) TYPE=MyISAM CHARACTER SET utf8;
|
Как одним запросом посчитать количество товаров, у которых есть хотя бы одно открытое изображение?
делаю так:
SELECT COUNT(stores_products.id_product)
FROM `stores_products`
JOIN `stores_products_images` ON stores_products.id_product = stores_products_images.id_product
WHERE stores_products.product_show = 'yes'
AND stores_products_images.image_show = 'yes'
GROUP BY stores_products.id_product
|
в результате выдаёт верное количество строк, но результат запроса не тот, который мне нужен. покажите пожалуйста как правильно.
спасибо
(перенесите пожалуйста тему в mysql, не тот форум выбрал) | |
|
|
|
|
|
|
|
для: psychomc
(09.02.2010 в 18:47)
| | хм! проблема решилась вот так:
SELECT COUNT(DISTINCT stores_products.id_product)
FROM `stores_products`
JOIN `stores_products_images` ON stores_products.id_product = stores_products_images.id_product
WHERE stores_products.product_show = 'yes'
AND stores_products_images.image_show = 'yes'
|
это грамотно с точки зрения sql? | |
|
|
|