You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建正确关联同一表两个外键的SQL视图?

正确创建关联studio和publisher外键的v_releases视图

错误原因分析

  • 第一次SQL用AND同时绑定releases.studio_id = companies.id和releases.publisher_id = companies.id,这只有当开发商和发行商是同一家公司时才会匹配到数据,所以大部分场景下studio和publisher都是null。
  • 第二次SQL只通过studio_id关联了一次companies表,publisher字段复用了这个关联表的name值,导致和studio内容完全重复。

正确的视图创建SQL

你需要两次关联companies表,分别给表设置别名来区分开发商(studio)和发行商(publisher)的关联逻辑:

CREATE VIEW v_releases AS
SELECT 
    releases.id AS id, 
    games.name AS name,
    studio_comp.name AS studio,
    publisher_comp.name AS publisher
FROM releases
LEFT JOIN games ON releases.game_id = games.id
LEFT JOIN companies AS studio_comp ON releases.studio_id = studio_comp.id
LEFT JOIN companies AS publisher_comp ON releases.publisher_id = publisher_comp.id;

这里用studio_comp和publisher_comp两个别名分别关联companies表,分别对应studio_id和publisher_id,就能正确获取各自的公司名称了。

内容的提问来源于stack exchange,提问作者Rome

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 08:37:02