作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有如下 2 个表:-
表A
-------------------------------
| product_id | price |
-------------------------------
| 1 | 2.2000 |
| 2 | 0.0000 |
| 3 | 0.3333 |
表 B
-------------------------------
| product_id | price_discount |
-------------------------------
| 1 | 1.8000 |
如何使用 select 语句为上面提到的 2 个表选择价格范围?
示例:- SELECT * FROM TABLE A WHERE **price or price discount** BETWEEN AND 2;
由于 product_id 的 discount_price = 1.8(在 0 到 2 价格范围内),预期结果将显示。
-------------------------------
| product_id | price |
-------------------------------
| 1 | 2.2000 |
| 2 | 0.0000 |
| 3 | 0.3333 |
请帮忙。谢谢。
最佳答案
两个表之间的简单 LEFT JOIN
可能就足够了。 LEFT JOIN
完成是因为我们可以在两个表之间有不匹配的行。
编辑:以前的版本对 tb.price_discount IS NOT NULL
进行了额外检查;但确实不需要,BETWEEN..AND
就足够了。
在 OR
中有解释运算 rune 档,即 1 OR NULL = 1
SELECT ta.*
FROM tablea AS ta
LEFT JOIN tableb AS tb
ON ta.product_id = tb.product_id
WHERE ta.price BETWEEN 0 AND 2
OR
tb.price_discount BETWEEN 0 AND 2
上述解决方案是基于假设在tableb
中将有0 或1 行对应于product_id
。如果可以有更多,则可能需要 GROUP BY
。
关于mysql - 如何用 'table a' .'column b' 替换 'table b' .'column b' 如果 'table a' .'column a' 匹配 'table b' .'column a',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53531583/
我是一名优秀的程序员,十分优秀!