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

У меня есть таблица ad - структура и таблица ad_props - структура

Я пытаюсь выбрать запись

SELECT `ad`.* 
FROM `ad` 
INNER JOIN `ad_props` ON ad_props.ad_id = ad.id 
WHERE (`status`=2)
  AND ((`ad_props`.`row_id`=5)
  AND ((`ad_props`.`value`='10') OR (`ad_props`.`value_id`='10')))
  AND ((`ad_props`.`row_id`=6)
  AND ((`ad_props`.`value`='12') OR (`ad_props`.`value_id`='12'))) 
GROUP BY `ad`.`id`

И должно было выбрать 1 запись - введите сюда описание ссылки

Как я понимаю, это из-за того, что не может быть row_id и 5 и 6 одновременно.

Вопрос: с помощью какой конструкции это можно сделать?


Ответы (1 шт):

Автор решения: Akina
SELECT `ad`.* 
FROM `ad` 
INNER JOIN `ad_props` ON ad_props.ad_id = ad.id 
WHERE (`status`=2)
  AND
(
 (
      ((`ad_props`.`row_id`=5)
  AND ((`ad_props`.`value`='10') OR (`ad_props`.`value_id`='10')))
 )
 OR
 (
      ((`ad_props`.`row_id`=6)
  AND ((`ad_props`.`value`='12') OR (`ad_props`.`value_id`='12'))) 
 )
)
GROUP BY `ad`.`id`
→ Ссылка