Задать вопрос
@Dizzy221
PHP Программист

Как сформировать такой SQL запрос?

Есть таблицы:
1. shop_order (id, contact_id,state_id)
2. contact_data (id, contact_id, field, value)

Вторая таблица имеет следующий вид:
id | contact_id | field | value
1 | 25 | phone | 89167777777
2 | 25 | city | Москва
3 | 26 | phone | 89164444444
4 | 26 | city | Москва
5 | 27 | phone | 89164443333
6 | 27 | city | Тверь

Как выгрузить все заказы (shop_order) и номера телефонов контакта к этим заказам (contact_data), которые имеют shop_order.state_id='paid', и город Москва?
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 1
select t1.*, t2.value as phone from shop_order as t1
left join contact_data as t2 on t1.contact_id = t2.contact_id
where t2.field='phone' and t2.contact_id in (select contact_id from shop_order where t1.state_id='paid' and value='Москва')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
romanko_vn
@romanko_vn
SELECT * FROM shop_order 
INNER JOIN contact_data USING(contact_id)
WHERE shop_order.state_id='paid' AND contact_data.value='Москва'
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы