2014-09-13 102 views
0

请看下面的图。数据库加入连接4个表

enter image description here

在这里,我需要使用idClient检索PortfolioInvestment_TypeInvestment_TypeInvestment_Type表中的字符串。 ?

不幸的是,这个数据库连接是对我:(太复杂我怎样才能实现这个任务

PS:

简单来说,我需要做的是,我需要。得到的Clients名单,看看他们有什么Portfolios和他们的每个投资组合的portfolio_Type

+0

从查询结果中需要的所有字段是什么?看起来每个'idClient'都可以有很多投资组合,因此有很多投资类型,那么您的查询参数是什么?只是一个'idClient'? – hukir 2014-09-13 20:17:58

+0

@hukir:是的,只是ID客户端。简而言之,我需要做的是这个;我需要获取“客户”列表,看看他们的每个投资组合的“投资组合”和“投资组合类型”是什么。 – 2014-09-13 20:48:04

+0

@hukir:'客户'可以有许多'Portfolios'。一个'投资组合'可以有一个'Investment_Type' – 2014-09-13 20:56:49

回答

1
SELECT Investment_Type 
FROM Investment_Type 
WHERE idInvestment_Type IN (
    SELECT idInvestment_Type 
    FROM Portfolio 
    WHERE idPortfolio IN (
     SELECT idPortfolio 
     FROM Client_Portfolio 
     WHERE idClient IN (SELECT idClient FROM Client) 
     ) 
    ) 
+0

这工作。谢谢! – 2014-09-14 08:27:06

2

尝试下面提到的查询:

SELECT IT.Investment_Type 
FROM 
Client_portFolio CF 
LEFT JOIN portfolio P ON (CF.idPorFolio = P.idPorFolio) 
LEFT JOIN investment_type IT ON(P.idInvestmentType =IT.idInvestmentType) 
WHERE CF.idClient = <ClientId>