【发布时间】:2017-01-13 09:24:29
【问题描述】:
我有一个无法回答的带有“内部联接”的 sql 查询。结果并没有如我所愿。甚至,我删除了“内连接”——结果也包括了所有内容——就像“内连接”一样。
如果我只希望结果来自这些条件怎么办?
- prop_type='5'
- 不是 prop_price='0'
- prop_price2='0'
- prop_price3='0'
Mysql:
select prop_lang, prop_type, prop_for,
ppix_cover,prop_price,prop_price2,prop_price3
from prop_db
inner join prop_pix on prop_db.prop_sid=prop_pix.prop_sid
where prop_db.prop_type='5'
and prop_db.prop_lang='1'
and prop_pix.ppix_cover='1'
and prop_db.prop_for='1' or prop_db.prop_for='0'
and prop_price3='0'
and prop_price2='0'
and not prop_price='0'
group by prop_db.prop_sid
order by prop_db.prop_id
LIMIT 0, 9
这是上面查询的结果。
如您所见,“prop_type”列提供了我没想到的其他值。第一行还有 price2 和 price3 不是 ='0'。
我应该怎么做才能使结果显示为上述条件?
【问题讨论】:
-
你的 OR 语句是罪魁祸首。我没有您的表格的样本,但 OR 语句读作 (where this) OR (where this)。因此,查询将包括符合这两个条件的所有内容。使用括号使逻辑清晰并防止这种情况发生。
标签: mysql sql-server join