Рассмотрим две таблицы базы данных, Reports
и Reports_has_properties
Reports
------
id_report
1
2
3
Reports_has_properties
----------------------
id_report property
1 red
1 big
2 orange
3 blue
3 tiny
Проблема: например, я получаю только отчеты со свойством red, но запрос возвращает все id_report
, которые соответствуют id_report
SELECT * FROM reports
INNER JOIN reports_has_properties
ON reports_has_properties.id_report = reports.id_report
WHERE reports_has_properties.property = 'red'
Логическое объяснение:
ЕСЛИ reports_has_properties ИМЕЕТ ID_report с другим свойством, не выбирайте его!
У id_report 1 свойство красное и большое, так что это не хорошо.
Но если я ищу свойство orange, у id_report 2 есть только одно свойство, так что все в порядке.
Я много чего пробовал, но идей больше нет. Большое спасибо.