@komiv

Как сравненить таблицы по одинаковым полям?

Здравствуйте!
Есть база автосалонов торгующих различными марками автомобилей. Отделу маркетинга необходима информация по салонам торгующим автомобилями совпадающими по двум или трем моделям. Необходимо сравнить две аналогичные таблицы salon и admin и оставить в таблице salon строки совпадающие по трем полям model.
salon
489e3cb8b3fa4466a6d5ab843e9dc735.jpg
admin
23b01fef04f64e69abb54074e496cfa9.jpg
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 2
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Кто ж такую гадость то спроектировал.
Для начала перейти на нормальное хранение данных: таблицы вида (id_salon, id_model)
Дальше - можно в лоб через join и having count(...)>2
Ответ написан
petermzg
@petermzg
Самый лучший программист
Решение такое:
select * from salon sl, admin ad
where (if(sl.model1 in (ad.model1, ad.model2, ad.model3, ad.model4, ad.model5), 1, 0) +
            if(sl.model2 in (ad.model1, ad.model2, ad.model3, ad.model4, ad.model5), 1, 0) +
            ...
            if(sl.model5 in (ad.model1, ad.model2, ad.model3, ad.model4, ad.model5), 1, 0)) >= 3
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы