Перейти к содержанию

Рекомендуемые сообщения

Не хватает понимания как правильно выполнить запрос.
Есть 2 запроса, оба они делают то что мне нужно. 

 

Грубо говоря, первый выбирает товары дочернных категорий
Второй выбирает товары которые находятся в главной категории 415


Но возникла необходимость выполнять 2 запроса одновременно, хочу их объединить.

SELECT * FROM oc_product p LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_typefishing_category tc ON (p2c.category_id = tc.category_id) WHERE tc.typefishing_id = '415' AND p.status = '1'
SELECT * FROM oc_product p LEFT JOIN oc_product_to_typefishing p2f ON (p.product_id = p2f.product_id) WHERE p2f.typefishing_id = '415' AND p.status = '1'


Пробовал сделать вот так, но нет

SELECT * FROM oc_product p LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_typefishing_category tc ON (p2c.category_id = tc.category_id) LEFT JOIN oc_product_to_typefishing p2f ON (p.product_id = p2f.product_id) WHERE tc.typefishing_id = '415' AND p.status = '1'

 

Изменено пользователем Seofisher

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы уверены, что есть данные соответствующие этой выборке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, n3bo сказал:

А вы уверены, что есть данные соответствующие этой выборке?

Вы имеете ввиду что третий запрос правильный?

По первому и второму запросу есть правильные данные (разные), по третьему запросу - данные только те которые выбирает первый запрос.

Изменено пользователем Seofisher

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

union
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, chukcha сказал:

union
 

Что Вы имеете ввиду?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я имею ввиду, то что я сказал, ві просили объединить, я вам сказал как

А запросы сами не смотрел

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, chukcha сказал:

Я имею ввиду, то что я сказал, ві просили объединить, я вам сказал как

#1222 - Использованные операторы выборки (SELECT) дают разное количество столбцов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так выравнивайте по количеству.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, chukcha сказал:

Ну так выравнивайте по количеству.

А что сделать с #1052 - Столбец 'product_id' в field list задан неоднозначно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне за вас написать запрос?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, chukcha сказал:

мне за вас написать запрос?

Спасибо. написал "Столбец 'product_id' в field list задан неоднозначно" потому что не пойму что сделать с этим. В гугле и не нашел решения...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде как разобрался с запросом...
 

SELECT p.product_id, p.image, p.price FROM oc_product p LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_typefishing_category tc ON (p2c.category_id = tc.category_id) WHERE tc.typefishing_id = '415' AND p.status = '1' UNION ALL SELECT p.product_id, p.image, p.price FROM oc_product p LEFT JOIN oc_product_to_typefishing p2f ON (p.product_id = p2f.product_id) WHERE p2f.typefishing_id = '415' AND p.status = '1'

Столбец 'product_id' в field list задан неоднозначно решил путем добавления префикса p.product_id


@chukcha Спасибо за union!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.