SQL如何关联查询同一张Customer表中客户对应的开票方信息?

解决方案
你需要用自连接实现同表关联匹配,逻辑是将Customer表分别取别名作为客户主表、开票方附表,通过bill_to_customer和customer_id的关联关系取出开票方信息。
示例SQL
SELECT -- 可按需保留当前客户的其他字段 c.customer_id 当前客户ID, c.customer_name 当前客户名称, -- 取关联到的开票方信息 bt.customer_name 开票方名称, bt.address 开票方地址, bt.country 开票方国家 FROM Customer c LEFT JOIN Customer bt ON c.bill_to_customer = bt.customer_id;
说明
- 使用
LEFT JOIN而不是INNER JOIN,是为了避免部分客户bill_to_customer值无效/为空时,当前客户的整条记录被过滤,如果确认所有客户的开票方ID都能匹配到有效记录,可以替换为INNER JOIN - 该逻辑天然支持
customer_id与bill_to_customer相等的场景,也就是客户自身为开票方时也可以正常返回对应信息
内容的提问来源于stack exchange,提问作者Sachini Jayasuriya
相关产品推荐
相关产品推荐

