請看下面的表格結構。MySQL:從多個表中檢索數據
Client
表具有foreign key
爲Provider
表,這是不NULL
。 Portfolio
表的foreign key
表爲Client
表,它也不是NULL
。
我需要檢索從Portfolio
表中的所有領域,Client
的名稱和誰被分配到由Portfolio
表所指的Client
的Provider
名稱..
我怎樣才能做到這一點的SQL碼?
請看下面的表格結構。MySQL:從多個表中檢索數據
Client
表具有foreign key
爲Provider
表,這是不NULL
。 Portfolio
表的foreign key
表爲Client
表,它也不是NULL
。
我需要檢索從Portfolio
表中的所有領域,Client
的名稱和誰被分配到由Portfolio
表所指的Client
的Provider
名稱..
我怎樣才能做到這一點的SQL碼?
嘗試使用INNER JOIN進行查詢。
SELECT Portfolio.*,Client.name as "Client Name",Provider.name as "Provider Name"
FROM Portfolio
INNER JOIN Client ON Portfolio.Client_id=Client.id
INNER JOIN Provider ON Client.Provider_id = Provider.id
這應該給你你所期望的結果:
Select * from client
join portfolio on client.id=portfolio.clientId
join provider on client.provider_id=provider.id
因爲除了'Provider',我不需要表中的所有字段,所以我如何指定我需要的列併爲其分配'別名'? – 2014-09-10 11:02:22
@Sniper添加您需要的列名稱而不是客戶端。如果您有公共名稱,則必須將表名添加爲前綴。 – Jens 2014-09-10 12:59:48
它的工作原理,但有沒有我們可以取代Client'表「名稱的'「名稱」列標題的方式「輸出中」Provider「表的列?因爲每個人都有相同的名稱'名稱'?除此之外,它將返回所有3個表中的所有數據? – 2014-09-10 10:55:27
是的,你可以。而不是'*'你用'alias name'寫出了所有'列重複名稱' – Sadikhasan 2014-09-10 10:56:51
我的意思是我需要'投資組合'中的所有數據,但不是來自其他人。那麼我應該在哪裏指定列名? – 2014-09-10 10:58:35