仅选择SQL连接中的特定列并指定“alias”

时间:2014-09-10 11:28:44

标签: mysql sql join alias

我有this answer以下的SQL代码到我之前的问题:

SELECT *
FROM Portfolio
INNER JOIN Client ON Portfolio.Client_id=Client.id
INNER JOIN Provider ON Client.Provider_id = Provider.id

此代码返回我需要的数据但是在Client表中,我只想要“名称”列,而在Provider表中我只需要“名称”列,而我需要所有的Portfolio表中的列。我还需要将Name表格的Provider列的标题替换为Provider Name,将Name表格中的Client列替换为Client Name }。所以,我在下面试过,

SELECT *
FROM Portfolio
INNER JOIN Client.Name "Client Name" ON Portfolio.Client_id=Client.id
INNER JOIN Provider.Name "Provider Name" ON Client.Provider_id = Provider.id

它不起作用。

2 个答案:

答案 0 :(得分:3)

您可以这样做,并为您的列提供新的别名,在下面的查询中,我给p Portfolio一个简短的名称,以便选择Portfolio中的所有列,您只能使用p.*Client

Provider相同
SELECT p.* ,
c.Name AS 'Client Name' ,
pr.Name AS 'Provider Name'
FROM Portfolio p
INNER JOIN Client c ON p.Client_id=c.id
INNER JOIN Provider pr ON c.Provider_id = pr.id

答案 1 :(得分:0)

SELECT Portfolio.*, Client.Name as "Client Name", Provider.Name as "Provider Name"
FROM Portfolio
INNER JOIN Client.Name ON Portfolio.Client_id=Client.id
INNER JOIN Provider.Name ON Client.Provider_id = Provider.id