Задавайте вопросы, мы ответим
Вы не зашли.
Имеются две таблицы:
1) art_catalog
2) art_products
1)
catalog_id
catalog_name
parent_id
catalog_pic
2)
product_id
product_name
product_pic
catalog_id
product_visible
product_hits
product_new
product_sale
product_price
product_count
product_available
product_img
product_code
product_param1
product_param2
product_param3
product_param4
product_anons
product_description
Необходимо сделать запрос что бы на выходе получить:
catalog_id - catalog_name - parent_id - catalog_pic - product_pic
т.е product_pic последнего товара из категории с parent_id
получается что catalog_id номер родительской категории в которой товаров по сути нет, в ней есть лишь дочерние категории с номером parent_id
пробую запрос типа:
SELECT catalog_id, catalog_name, parent_id, catalog_pic FROM art_catalog
(SELECT product_pic FROM art_products WHERE catalog_id IN (SELECT catalog_id FROM art_catalog WHERE parent_id = '1') AND product_visible = '1' ORDER BY product_id DESC LIMIT 1)
собственно как получить желаемый результат?
P.S Благодарю за внимание!
Неактивен
Не понятна постановка задачи. Покажите на примере тестовых данных какой должен быть результат.
Неактивен
В общем так, дополнение к предыдущему посту...
имеется таблица art_catalog:
catalog_id catalog_name parent_id catalog_pic
1 Искусство 0 pic1231.jpg
2 Графика 1 pic3423.jpg
3 живопись 1 pic2324.jpg
4 сувениры 0 pic45645.jpg
5 игрушки 4 pic89789.jpg
6 керамика 4 pic2342342.jpg
так же таблица art_products
product_id product_name product_pic catalog_id product_visible
1 картина 1 kartina_pic1.jpg 2 1
2 картина 2 kartina_pic2.jpg 2 1
3 ижображение kartina1.jpg 3 1
4 изобра kartina22.jpg 3 1
5 игрушка1 toy1.jpg 5 1
6 игрушка2 toy2.jpg 5 1
7 ваза1 vaza1.jpg 6 1
8 ваза2 vaza2.jpg 6 1
9 ваза3 vaza3.jpg 6 0
на выходе хотелось бы получить такую таблицу:
catalog_id catalog_name parent_id catalog_pic product_pic
1 Искусство 0 pic1231.jpg kartina_pic2.jpg
4 сувениры 0 pic45645.jpg vaza2.jpg
т.е получить только родителей, и картинку последнего товара доваленного в его подкатегорию(не во все, а просто последний товар добавленный в любую из подкатегорий) при этом product_visible у товара должен быть 1
Спасибо Вам за Вашу помощь!
Неактивен
SELECT .. FROM
art_catalog t1 JOIN art_catalog t2 ON t1.catalog_id=t2.parent_id
JOIN art_products p ON t2.catalog_id=p.catalog_id
WHERE t1.parent_id=0 AND p.product_visible=1;
Далее группировка по t1.catalog_id со взятием максимального product_id. Обратите внимание на статью про группировку
Неактивен
vasya написал:
SELECT .. FROM
art_catalog t1 JOIN art_catalog t2 ON t1.catalog_id=t2.parent_id
JOIN art_products p ON t2.catalog_id=p.catalog_id
WHERE t1.parent_id=0 AND p.product_visible=1;
Далее группировка по t1.catalog_id со взятием максимального product_id. Обратите внимание на статью про группировку
Ваш запрос возвращает: MySQL вернула пустой результат (т.е. ноль строк). ( Запрос занял 0.0013 сек. )
Неактивен
А Вы приведите структуру таблиц дамп данных,на которых пустой результат (show create table и insert into).
Как в
http://sqlinfo.ru/forum/viewtopic.php?pid=35669#p35669
или
http://sqlinfo.ru/forum/viewtopic.php?pid=36260#p36260
или
http://sqlinfo.ru/forum/viewtopic.php?pid=20266#p20266
или на худой конец
http://sqlinfo.ru/forum/viewtopic.php?pid=28414#p28414
Неактивен
deadka написал:
А Вы приведите структуру таблиц дамп данных,на которых пустой результат (show create table и insert into).
Как в
http://sqlinfo.ru/forum/viewtopic.php?pid=35669#p35669
или
http://sqlinfo.ru/forum/viewtopic.php?pid=36260#p36260
или
http://sqlinfo.ru/forum/viewtopic.php?pid=20266#p20266
или на худой конец
http://sqlinfo.ru/forum/viewtopic.php?pid=28414#p28414
Отредактированно saylar_06 (02.09.2014 20:11:05)
Неактивен
saylar_06 написал:
результатом его работы возвращает мне все поля таблицы (хотя они мне не нужны, пытался вместо звездочки указать поля но не дает)
указывайте полные имена полей
select temp.parent_id as catalog_id, ...
saylar_06 написал:
Ваш запрос возвращает: MySQL вернула пустой результат (т.е. ноль строк). ( Запрос занял 0.0013 сек. )
Это потому, что
`product_visible` enum('0','1') NOT NULL DEFAULT '1',
соответственно в запросе нужно AND p.product_visible='1';
Зачем вам строковые значения для поля принимающего ноль или единицу?
Неактивен
Спасибо!
Отредактированно saylar_06 (03.09.2014 08:47:44)
Неактивен