2014-08-27 142 views
0

谁能帮我这个问题,我试过很多次,但还没有找到解决办法 这里原来认为我在我的数据库,但现在我做数据库的变化和该观点也需要改变。SQL视图语句连接

这是因为它认为:

SELECT 
    [tableN].*, 
    [tabB].[att1] AS tabB_email, [tabB].[name] AS tabB_name, 
    [tabC].[name] AS tabC_name 
FROM 
    [tabC] 
INNER JOIN 
    ([tableN] 
INNER JOIN [tabB] ON [tableN].[sender_id] = [tabB].[ID]) 
    ON [tabC].[ID] = [tableN].[recipient_id] 

这里是什么对我来说是难点。现在我没有这个2个表tabBtabC

他们现在在一个表tabX并有一个标识符字段roleId。我设法得到除了最后一个[tabC].[name] AS tabC_name

任何想法都列?

+0

remvoe'[TABC]代码。[名]'和'删除在tabc'从caluse变化塔布到TABX – Sathish 2014-08-27 08:51:52

+0

但我需要的tabC_name女巫是同一个领域tabB_name但现在有diferent ID和角色ID。需要显示的名字 – 2014-08-27 08:54:57

+0

能否请您SQLFiddle表模式?或者在你的问题中提供表格结构与它的关系? – 2014-08-27 08:56:40

回答

0
SELECT [TableN].*, Bd.[email] AS bd_email, Bd.[showname] AS bd_name, 
     Pc.[showname] AS pc_name 
    FROM 
     [TABLE_X] AS Pc 
     INNER JOIN ([TableN] 
     INNER JOIN [TABLE_X] AS Bd 
     ON [TableN].[sender_id] = Bd.[ID] AND Bd.roleID = 1) 
     ON Pc.[ID] = [TableN].[recipient_id] AND Pc.roleID = 2 

我终于找到了正在工作的需要

0
SELECT [tableN].*, [Tabx] .[att1] AS tabB_email, [Tabx] .[name] AS tabB_name 

    FROM [Tabx] A 

    INNER JOIN [TABLEN] B 

    ON A.ROLEID=B.RECIPIENT_ID 
0

尝试这样

SELECT [tableN].*, [tabX].[att1] AS tabB_email, [tabX].[name] AS tabB_name, 
t1.[name] AS tabC_name 
FROM [tabX] as t INNER JOIN ([tableN] INNER JOIN [tabX] 
ON [tableN].[sender_id] = [tabX].[roleid]) 
ON t.[roleid] = [tableN].[recipient_id] 
+0

'[tabB]'不存在。 – 2014-08-27 09:03:55

+0

@RuslanVeselov现在检查它 – Sathish 2014-08-27 09:07:06

+0

我得到了列的名称,但没有数据:/ – 2014-08-27 09:08:10