使用JOIN添加额外列遇阻:如何获取收购方与被收购方名称
解决关联双ID获取公司名称的SQL问题
要同时拿到收购方和被收购方的公司名称,你需要两次关联company表,给两次关联的表设置不同别名来区分字段,修改后的SQL如下:
SELECT acq_c.name AS 收购公司名称, acqd_c.name AS 被收购公司名称, a.price_amount, acqd_c.funding_total FROM acquisition a -- 关联收购方公司表,获取收购方名称 JOIN company acq_c ON a.acquiring_company_id = acq_c.id -- 关联被收购方公司表,获取被收购方名称和融资总额 JOIN company acqd_c ON a.acquired_company_id = acqd_c.id WHERE a.price_amount <> 0 AND acqd_c.funding_total <> 0
关键说明:
- 用
acq_c和acqd_c作为两次关联company表的别名,避免字段冲突 - 过滤条件里明确指定
acqd_c.funding_total,确保引用的是被收购方的融资总额字段 - 这里用
JOIN(内连接)替代原语句的LEFT JOIN,因为如果某条收购记录没有匹配到对应的公司数据,这类记录通常没有业务意义;如果你确实需要保留无匹配的记录,可以改回LEFT JOIN,但要注意处理可能出现的NULL值
内容的提问来源于stack exchange,提问作者fujidaon
相关产品推荐
相关产品推荐

