回答

收藏

在多行的两列之间选择值

技术问答 技术问答 285 人阅读 | 0 人回复 | 2023-09-12

我读过很多主题、文章和官方文章MYSQL文档,但我找不到任何东西来帮助我理解如何解决这个问题。
6 P3 ]+ m% N( h) M; r% n: z甚至这个SO主题不能满足我的需求(其中,他们没有尝试搜索超过2的值,你会明白为什么是问题)。; S# o5 f3 }* P0 l& ], ?& }
例如,我在range_and_prices范围定义在表中:
" ^( v5 w) V' j. ~& K' ?& P---| id  | ranges_from | ranges_to | prices || --- | ----------- | --------- | ------ || 1   |            |       |    || 2   |  21                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 40                             |     || 3   | 411                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |60                                                                                                                                                                                                                                                                                                                                                                                                                           | 40当我试图插入它时total_quantity 5产品;; }! |% u0 ?9 Z7 u( h  |
| product_id | product | total_quantity || ---------- | ------- | -------------- || 1          | Coffee  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |我得到了我的采石场果,因为应该是(因为total_quantity为5,它在1-在20范围内range_prices范围为10):
+ O) {7 H* K7 s& }) k- f| product_id | product | total_quantity | product_id | range_prices || ---------- | ------- | -------------- | ---------- | ------------ ||             | Coffee  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |             |                                            |但是,一旦我尝试进入其他范围,range_prices就会为空。
& [/ u- |) ^, S& q% u假如我选了25,结果应该是:
( h; |' [4 d: l0 G& a| product_id | product | total_quantity | product_id | range_prices || ---------- | ------- | -------------- | ---------- | ------------ ||             | Coffee  | 255                                                                                                                                                                                                                                                                                                                                                                                                                                                             |             | 20           |但对于20以上的total_quantity,我将得到null。
% ?, g. e- W4 T查看数据库小提琴3 D9 j& f$ n- R6 k
            insert into `range`(`product_id`,`range_prices`) VALUES     ((SELECT LAST_INSERT_ID() AS id FROM product ),(SELECT prices FROM range_and_prices WHERE (SELECT total_quantity FROM product WHERE product_id=id) BETWEEN ranges_from AND ranges_to ORDER BY prices ASC    LIMIT 1 ) ;我相信我知道为什么。例如,如果我选择25,数字在1到40之间,结果是两个范围,所以我会感到困惑。我厌倦了各种各样的事情,比如限制结果,试图获得范围的最大值和最小值。我尝试了大约20件不同的事情,每次都得到相同的结果。以太是我的逻辑,或者对我来说,这对我来说很重要。请帮忙。
8 V5 ]. i' w% K, @# [0 h  o% \                                                               
. \# P) P$ c6 Z: j( x    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则