SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 30.04.2018 15:43:17

Yan
Участник
Зарегистрирован: 30.04.2018
Сообщений: 2

Как лучше реализовать выбор записей по нескольким параметрам (сложно)

Картинка таблиц:
https://imgur.com/a/Csyg8HR
Мне нужно вывести product_id
Где
text = "16 МП" и "2 года"
Проблема заключается в том, что каждый id в новой записи и нельзя записать так
SELECT * FROM oc_product_attribute asd WHERE asd.text="2 года" and asd.text="16 МП"

Неактивен

 

#2 30.04.2018 15:52:03

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

Re: Как лучше реализовать выбор записей по нескольким параметрам (сложно)

Yan написал:

Проблема заключается в том, что каждый id в новой записи и нельзя записать так
SELECT * FROM oc_product_attribute asd WHERE asd.text="2 года" and asd.text="16 МП"

Вроде все слова знакомые и понятные, а вместе сложить не получается. sad
ЗЫ
В скрипте явная ошибка. Вместо " нужно использовать одинарную кавычку '.

Отредактированно klow (30.04.2018 15:53:21)

Неактивен

 

#3 01.05.2018 02:50:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Как лучше реализовать выбор записей по нескольким параметрам (сложно)

SELECT product_id FROM oc_product_attribute asd WHERE asd.text="2 года" or asd.text="16 МП" group by product_id having count(*)=2


klow написал:

ЗЫ
В скрипте явная ошибка. Вместо " нужно использовать одинарную кавычку '.

явной ошибкой не является - интерпретация " зависит от sql_mode

Неактивен

 

#4 01.05.2018 07:26:03

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

Re: Как лучше реализовать выбор записей по нескольким параметрам (сложно)

Согласен, но не думаю, что начинающий будет заморачиваться с sql_mode.
Хотя, все может быть.
Почему "count(*)=2". Вроде, в формулировке задачи этого не было?

Отредактированно klow (01.05.2018 07:32:51)

Неактивен

 

#5 01.05.2018 23:09:23

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Как лучше реализовать выбор записей по нескольким параметрам (сложно)

2 это кол-во параметров, которым должен удовлетворять продукт (те которые перечисляются в части where).
в исходном примере их 2

Где
text = "16 МП" и "2 года"

Неактивен

 

Board footer

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