【发布时间】:2016-08-10 13:34:04
【问题描述】:
我有 2 个表需要加入。 表一:
User |Country|
--------------
a | NZ |
a | NZ |
a | HU |
a | IL |
a | AU |
a | AU |
a | RO |
a | NZ |
a | NZ |
a | NZ |
a | GB |
a | GB |
表 2:
User |Country| Payment
----------------------
a | GB | 20
a | AU | 20
a | | 30
我想要得到的最终结果是这个:
User | Country | Payment
--------------
a | NZ | 30
a | NZ | 30
a | HU | 30
a | IL | 30
a | AU | 20
a | AU | 20
a | RO | 30
a | NZ | 30
a | NZ | 30
a | NZ | 30
a | GB | 20
a | GB | 20
结果中有两个条件:
1 - 如果两个表中的国家/地区相同,则给我相应的付款,即在这种情况下仅适用于 GB 和 AU。
2 - 如果表 2 中的国家为 NULL,则加入到所有其他国家的付款(GB 和 AU 除外)
这件事可以用 2 个左连接来完成,但是有没有办法用 1 来完成呢?像 CASE/IF 之类的东西。我查看了几个加入 CASE 的示例,但它对我不起作用。
谢谢。
【问题讨论】:
-
对于第2点,为什么现在是
30?在计算之前是否还有其他数据需要考虑。如果是,那么它在哪里以及如何计算它。
标签: mysql sql if-statement join case