Как правильно сформулировать MySQL запрос?

Здравствуйте! Есть следующие две таблицы category и special, необходимо сделать следующее:
Выбрать все id из таблицы category у которых все product_id есть в таблице special.

Category
Id | Product_id | description
1 | 123 |
1 | 124 |
1 | 125 |
2 | 126 |
3 | 127 |
4 | 128 |
4 | 129 |

Special
Product_id | Price | Old_price
123 | 1 | 1
124 | 1 | 1
125 | 1 | 1
129 | 1 | 1
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT DISTINCT `c`.`id`
  FROM `Category` AS `c`
  LEFT JOIN (
    SELECT DISTINCT `c1`.`id` AS `id`
      FROM  `Category` AS `c1`
      LEFT JOIN `Special` AS `s1` ON `s1`.`Product_id` = `c1`.`Product_id`
      WHERE `s1`.`Product_id` IS NULL
  ) AS `s` ON `s`.`id` = `c`.`id`
  WHERE `s`.`id` IS NULL
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DmitryVoronkov
@DmitryVoronkov
Python Developer
SELECT `id` from `category` WHERE `product_id` IN (SELECT `product_id` FROM `special`)
Ответ написан
Ваш ответ на вопрос

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

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