Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL,行到列比较_Mysql - Fatal编程技术网

MySQL,行到列比较

MySQL,行到列比较,mysql,Mysql,我有两张桌子;第一种是基于国家地区和装运重量的定价 country zone 0.5 1 1.5 a $5.00 $6.00 $7.00 b $8.00 $9.00 $10.00 c $11.00 $12.00 $13.00 d $14.00 $15.00 $

我有两张桌子;第一种是基于国家地区和装运重量的定价

country zone    0.5         1             1.5
a               $5.00        $6.00     $7.00 
b               $8.00        $9.00     $10.00 
c               $11.00   $12.00       $13.00 
d               $14.00   $15.00       $16.00 
因此,在该表中,国家/地区显示了装运来自哪些国家,0.5、1和1.5是装运重量

第二个表列出了国家地区和装运重量

country zone        Weight
a                   0.75 
b                   1.20 
c                   1.00 
d                   1.50 
所以我想做的是将第二个表中的国家区域和权重与第一个表中的国家区域和权重进行比较,得到定价。我认为我的挑战在于,在第一个表中,权重列是数字,我不确定如何定义列以及如何将行与权重列进行比较。如果这是令人困惑的,我想在这里完成

country zone        Weight   Price
a                   0.75     $5.00 
b                   1.20     $9.00 
c                   1.00     $12.00 
d                   1.50     $16.00 
有些人会根据国家/地区和重量将这两个表连接起来,然后得到价格。我不想使用if或select case,因为权重可能会增加到300,所以我可能最终不只有3列,而是500或600列

我真的很感谢你的意见,如果我的问题让人困惑,我为此道歉


谢谢你

你的第一张表的设计真的很糟糕,你应该对它进行规范化。有些权重与任何列都不匹配,如何处理它们?我同意barmar的观点,你应该在花大量时间为非规范化表准备一个小生境解决方案之前对其进行规范化。可能有三列:countryZone、weight和price,而不是x数量的weight列我知道它们不匹配,这是不应该的,因为装运重量可能为1.2kg,价格应该在1.5kg范围内,所以这也是另一个挑战。这应该是一个很好的起点-您需要首先将行旋转到列(假设您无法直接从源更改表结构)