SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.07.2017 20:03:40

filot
Участник
Откуда: Севастополь
Зарегистрирован: 23.08.2014
Сообщений: 18

Не могу разобраться с JOIN

Привет.
Подскажите пожалуйста, использую JOIN для получения информации об одной записи из 4 таблиц.
Вот запрос:

SELECT c.*, a.*, d.name, COUNT(r.product_id) as kol_product
FROM `oc_categoryonpage_list` as c
LEFT JOIN `oc_category` as a ON c.category_id = a.category_id
LEFT JOIN `oc_category_description` as d ON c.category_id = d.category_id
LEFT JOIN `oc_product_to_category` as r ON c.category_id = r.category_id
WHERE d.language_id = '3' ORDER by c.position ASC LIMIT 20


Почему то выбирается всего одна запись, почему так происходит и как мне правильно выбрать все записи из таблицы "oc_categoryonpage_list".
Большое спасибо заранее за помощь!

Неактивен

 

#2 27.07.2017 21:21:00

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Не могу разобраться с JOIN

SELECT c.*, a.*, d.name, COUNT(r.product_id) as kol_product
FROM `oc_categoryonpage_list` as c
LEFT JOIN `oc_category` as a ON c.category_id = a.category_id
LEFT JOIN `oc_category_description` as d ON c.category_id = d.category_id and d.language_id = '3'
LEFT JOIN `oc_product_to_category` as r ON c.category_id = r.category_id
ORDER by c.position ASC LIMIT 20

Неактивен

 

#3 28.07.2017 20:41:31

filot
Участник
Откуда: Севастополь
Зарегистрирован: 23.08.2014
Сообщений: 18

Re: Не могу разобраться с JOIN

Не работает, так и выдаёт 1 запись ((

Неактивен

 

#4 28.07.2017 20:48:57

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Не могу разобраться с JOIN

Не увидел, что есть COUNT. Любая подобная функция без GROUP BY даст только одну строку.

SELECT c.*, a.*, d.name, COUNT(r.product_id) as kol_product
FROM `oc_categoryonpage_list` as c
LEFT JOIN `oc_category` as a ON c.category_id = a.category_id
LEFT JOIN `oc_category_description` as d ON c.category_id = d.category_id and d.language_id = '3'
LEFT JOIN `oc_product_to_category` as r ON c.category_id = r.category_id
group by ...
ORDER by c.position ASC LIMIT 20
Вместо ... вставьте поля по которым нужна группировка и уберите c.*, a.*. Вместо них укажите нужные поля.

Отредактированно klow (28.07.2017 20:53:26)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson