Size: a a a

2020 November 11

ЕС

Евгений Стигарь... in MySQL
Denis Efremov
Так а что за три таблицы такие?
источник

ЕС

Евгений Стигарь... in MySQL
Denis Efremov
Так а что за три таблицы такие?
источник

ЕС

Евгений Стигарь... in MySQL
первая - car_modification (модификации авто), вторая - car_serie (серии моделей)
источник

ЕС

Евгений Стигарь... in MySQL
Vova
CCV.id_car_characteristic_value IN
       (CCV.value LIKE '%Седан%') OR
     (CCV.value LIKE '%Механ%') - это как?
так отрабатывает?
я просто не шарю особо)
источник

V

Vova in MySQL
Евгений Стигарь
я просто не шарю особо)
CCV.id_car_characteristic_value IN - убрать, если не нужно отбирать по ним
источник

ЕС

Евгений Стигарь... in MySQL
Vova
CCV.id_car_characteristic_value IN - убрать, если не нужно отбирать по ним
выдает вот так
источник

V

Vova in MySQL
а value?
источник

ЕС

Евгений Стигарь... in MySQL
Vova
а value?
источник

V

Vova in MySQL
"Мне нужно сделать выборку id_car_modification, у которой в поле value есть значение 'седан', 'автомат' и 'дизель'"
источник

V

Vova in MySQL
Сходится?
источник

ЕС

Евгений Стигарь... in MySQL
Vova
"Мне нужно сделать выборку id_car_modification, у которой в поле value есть значение 'седан', 'автомат' и 'дизель'"
это выдает мне по вот этому запросу:

SELECT
   CM.name,
   CCV.value
FROM
 car_modification CM,
   car_serie CS,
 car_characteristic_value CCV
WHERE
 (CCV.id_car_modification = CM.id_car_modification) AND
   (CS.id_car_model = CM.id_car_model) AND
   (
       (CCV.value LIKE '%Седан%') OR
     (CCV.value LIKE '%Механ%')
   )
источник

ЕС

Евгений Стигарь... in MySQL
но ваз 2111 - это универсал, а не седан
источник

V

Vova in MySQL
может джоин размножил
источник

ЕС

Евгений Стигарь... in MySQL
Vova
может джоин размножил
могу скинуть базу, если интересно. Правда, она огромная
источник

V

Vova in MySQL
а не, подожди, тебе надо чтобы value разных категорий не пересекались
источник

V

Vova in MySQL
я верно понимаю, для одного айди должно быть седан и механика и дизель?
источник

ЕС

Евгений Стигарь... in MySQL
Vova
я верно понимаю, для одного айди должно быть седан и механика и дизель?
да, именно так (дизель я убрал в запросе)
источник

V

Vova in MySQL
можно предложить груп-конкат, но тогда нужен критерий сортировки value, чтоб всегда получать именно в одном порядке - седан;механ;дизель;
источник

ЕС

Евгений Стигарь... in MySQL
Vova
можно предложить груп-конкат, но тогда нужен критерий сортировки value, чтоб всегда получать именно в одном порядке - седан;механ;дизель;
я делаю фильтр на фронтенде, от него идет запрос в базу, там не только эти 3 характеристики могут быть. Такой вариант будет работать?
источник

V

Vova in MySQL
select name
from (
SELECT
   CM.name,
   CCV.value
FROM
 car_modification CM,
   car_serie CS,
 car_characteristic_value CCV
WHERE
 (CCV.id_car_modification = CM.id_car_modification) AND
   (CS.id_car_model = CM.id_car_model) AND
   (
    (CCV.value LIKE '%Седан%') OR
     (CCV.value LIKE '%Механ%') OR
     (CCV.value LIKE '%Дизел%')  
   )
) a
group by CS.id_car_model
having group_concat(value order by value separator '$') = 'Дизель$Механическая$Седан'
источник