2014-09-10 34 views
1

我從this answer下面的SQL代碼我剛纔的問題:只選擇特定的列並分配`alias`

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

此代碼返回我需要然而,在Client表中的數據,我只想「名稱」列和Provider表我只需要「名稱」列,而我需要Portfolio表中的所有列。我還需要將Provider表中的Name列的標題替換爲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 

它沒有工作。

+0

'SELECT Portfolio。*,Client.Name as ClientName,Provider.Name as Provider.Name' maybe? – 2014-09-10 11:30:40

+0

@ N.B .:感謝您的回覆。介意給一個完整的代碼的東西嗎? – 2014-09-10 11:31:58

+0

這個問題從我的答案複製檢查http://stackoverflow.com/questions/25763379/mysql-retrieve-data-from-multiple-tables – Sadikhasan 2014-09-10 11:53:18

回答

3

你可以這樣做,你的列給出新的別名,在下面的查詢我給了一個簡短的名稱pPortfolio所以從Portfolio選擇所有列,則只能使用p.*同爲ClientProvider

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 
+0

嗯..它給'錯誤'未知列'提供者名稱'在'字段列表''? – 2014-09-10 11:35:26

+0

@Sniper是的,我已經更新了我的答案看看當前的查詢 – 2014-09-10 11:36:01

+1

謝謝,給我第二pls .. – 2014-09-10 11:40:58

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