【发布时间】:2009-07-13 22:13:02
【问题描述】:
考虑两个数据库表,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 只有一个属性,所以没关系。
我尝试了很多东西,但我没有更多的想法。非常感谢。
【问题讨论】:
-
表 Reports_has_properties 的 id_report 1 的属性 red 和 big ,所以我想要的是只选择只有 red 属性的行