powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создать двойной запрос
10 сообщений из 10, страница 1 из 1
Создать двойной запрос
    #38734060
112qwdasdas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются две таблицы:
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 Благодарю за внимание!
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38734155
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мдя... как думаете, зачем тут визибл и лимит 1 и ордер? для получения списка???

опечатка, или просто копипаст что под руку попало, чтоб сделась видимость попытки...

ЗЫ
ТС - не обижайся, я и куча других бы помогли, даже если сам не пытался...просто попытка хоть чтото сделать, даём понимание, самой задачи, и как следствие чоткое её изложение...

а сдесь тз в стиле менеджера - сам не знаю что хочу, но чтобы както было так. вломы пытаться догадываться что именно имелось ввиду в фразе надо получить и список полей...

опять же, попытался бы, дошол бы до связи и знал бы что в перечне поля разных таблиц(одной но с разными псевдонимами)
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38734394
134234цйф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453,

Уважаемый! Буду Вам очень благодарен если вы подскажите мне какой запрос составить

В общем так, дополнение к предыдущему посту...

имеется таблица 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

Спасибо Вам за Вашу помощь!
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38734395
32423wedfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не нашел кнопки изменить сообщение

В общем так, дополнение к предыдущему посту...

имеется таблица 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 <---------------> aza2.jpg

т.е получить только родителей, и картинку последнего товара доваленного в его подкатегорию(не во все, а просто последний товар добавленный в любую из подкатегорий) при этом product_visible у товара должен быть 1

Спасибо Вам за Вашу помощь!
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38734415
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
select a.parent_id, max(aa.product_id)

from artcatalog a join artproduct aa on (aa.catalog_id = a.catalog_id )
where parent_id <> 0 and aa.visible 1

group by a.parent_id


это получим список категория(айди) - продукт(айди, последней визибл фотки)

теперь дело за малым, к этим парам долепить таблицы

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select * from
(
select a.parent_id, max(aa.product_id) as 'product_id'

from artcatalog a join artproduct aa on (aa.catalog_id = a.catalog_id )
where parent_id <> 0 and aa.visible 1

group by a.parent_id) temp

join
artcatalog a1 on (a1.catalog_id = temp.parent_id)
join 
artproduct a2 on (a2.product_id = temp.product_id)



навскидку както так.
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38735080
13eqwe23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453, Спасибо Вам большое за помощь! Уже ближе к тому что мне было нужно...

в общем изменив Ваш запрос под себя:

авторSELECT * FROM
(
SELECT a.parent_id, MAX(aa.product_id) AS 'product_id'

FROM art_catalog a JOIN art_products aa ON (aa.catalog_id = a.catalog_id )
WHERE parent_id <> 0 AND aa.product_visible 1

GROUP BY a.parent_id) temp

JOIN
art_catalog a1 ON (a1.catalog_id = temp.parent_id)
JOIN
art_products a2 ON (a2.product_id = temp.product_id)

Выдает ошибку:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 GROUP BY a.parent_id) temp JOIN art_catalog a1 ON (a1.catalog_id = temp.pare' at line 6

И судя по всему ему не нравиться AND aa.product_visible 1 , наверное потому что он относится ко второму селекту который в свою очередь пытается выбрать это поле из талицы в котором его нету? art_catalog?

P.S При попытке вместо звездочки прописать интересующие меня поля так же выходит ошибка: #1052 - Column 'catalog_id' in field list is ambiguous
менял это SELECT * FROM на это SELECT catalog_id, catalog_name, product_pic FROM

P.S Помогите разобраться :(
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38735400
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13eqwe23И судя по всему ему не нравиться AND aa.product_visible 1

aa.product_visible 1 ???
aa.product_visible = 1 !!!
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38735621
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13eqwe23При попытке вместо звездочки прописать интересующие меня поля так же выходит ошибка: #1052 - Column 'catalog_id' in field list is ambiguous пишите названия полей в виде
Код: plaintext
название_таблицы.название_поля
У вас во всех таблицах есть поле catalog_id. Сервер не знает, какое из них брать (в случае со звёздочкой он тупо выводил все)
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38735679
2342ы34ы2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex56465749876545313eqwe23И судя по всему ему не нравиться AND aa.product_visible 1

aa.product_visible 1 ???
aa.product_visible = 1 !!!

спасибо, помогло

tanglir13eqwe23При попытке вместо звездочки прописать интересующие меня поля так же выходит ошибка: #1052 - Column 'catalog_id' in field list is ambiguous пишите названия полей в виде
Код: plaintext
название_таблицы.название_поля
У вас во всех таблицах есть поле catalog_id. Сервер не знает, какое из них брать (в случае со звёздочкой он тупо выводил все)

пытаюсь вместо звездочки указать catalog_id или art_catalog.catalog_id или a.catalog_id или aa.catalog_id на все попытки одна и та же песня Unknown column
...
Рейтинг: 0 / 0
Создать двойной запрос
    #38735918
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2342ы34ы2,

указывать надо алиас таблицы, видимый на "текущем уровне выполнения"
то есть в вашем случае a1, a2 или temp
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создать двойной запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]