gpt4 book ai didi

mysql - 连接 4 个表时出现问题

转载 作者:行者123 更新时间:2023-11-29 12:43:11 24 4
gpt4 key购买 nike

请看下图。

enter image description here

它说,

  1. Portfolio 有一个 Provider
  2. 投资组合有一个Investment_Type
  3. Client_Profile 有一个 ClientPortfolio

现在,我需要获取分配给每个客户的客户列表、投资组合,最后是提供商名称和每个投资组合都有的 Investment_Type

下面是我获取数据的查询

SELECT Client_Portfolio.*,
Client.Name as "Client Name",
Provider.Name as "Provider Name",
Portfolio.*
FROM Client_Portfolio
INNER JOIN Client ON Client_Portfolio.idClient = Client.idClient
INNER JOIN Portfolio ON Client_Portfolio.idPortfolio = Portfolio.idPortfolio
INNER JOIN Provider ON Portfolio.idProvider = Provider.idProvider

但是它不起作用,它给了我不正确的结果,它只显示了属于一个 Client 的 2 个结果,仅此而已。

那么,我怎样才能完成这个任务呢?

最佳答案

INNER JOIN 将仅显示所有表都提供非空值的行。由于您的模式包含可选的提供程序,因此您将需要使用某种外部联接(例如LEFT JOIN):

SELECT Client_Portfolio.*,
Client.Name as "Client Name",
Provider.Name as "Provider Name",
Portfolio.*
FROM Client_Portfolio
INNER JOIN Client ON Client_Portfolio.idClient = Client.idClient
INNER JOIN Portfolio ON Client_Portfolio.idPortfolio = Portfolio.idPortfolio
-- show row even if it does not have a provider:
LEFT JOIN Provider ON Portfolio.idProvider = Provider.idProvider

关于mysql - 连接 4 个表时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com