【发布时间】:2021-03-05 15:35:30
【问题描述】:
事务表(1 行 --> 1 个事务)
customer_code amount
A0BEFG 100
DEC21A 80
支付表(1 行 --> 1 笔交易)
customer_id payment_type
1 cash
2 credit_card
客户表(1 行 --> 1 个客户代码)
customer_code customer_id
A0BEFG 2
DEC21A 1
预期输出: 组合表
customer_code customer_id amount payment_type
AOBEFG 2 100 credit_card
DEC21A 1 80 cash
也就是说,我的想法是把payment_type放到transactions表中,但是因为没有匹配变量,所以我需要先合并payment表和customer表,然后再连接到transactions表。
我试过的代码:
with
connection as (
select c.customer_code, c.customer_id, p. payment_type
from data.payment p
left join data.customer c on p.customer_id = c.customer_id
),
transactions as (
select t.merchant_code, t.amount
from data.transactions t
)
select
t.merchant_code, c.customer_id, c.amount, p.payment_type
from transactions as t
代码用于 PostgreSQL。
【问题讨论】:
-
merchant_code 应该被 customer_code 覆盖。但这并没有达到目标
-
customer_code 和 customer_id from customer 表是到其他 2 个表的链接。有什么问题?
-
我无法直接合并支付表和交易表,因为 customer_code 不等于 customer_id。
标签: sql postgresql join