2013-05-07 237 views
0

所以我不會很大,在SQL這樣的IM卡在這個問題上一點點: 我查詢我們的數據庫,並在它返回所有項的列表組合兩個SQL查詢

SELECT Id, Version, Name, ImplementationId, ManagedDataRepoId, Description, ParentId FROM Entity 

返回例如: 317 ,0,amAsset,,82,null,null。

的ImplementationId值這是鏈接到我可以retrive使用每個項目的名稱,另一個表中的所有整數:

SELECT i.Name from Implementation i 
JOIN Entity e 
ON e.ImplementationId = i.Id 

這將返回「當前」,這是ImplementationId 42名從第一個查詢。

有什麼辦法可以將這些組合成單個查詢嗎?理想情況下,因此將返回:

317,0,amAsset,當前,82,NULL,NULL

謝謝你們!

回答

3

您已經在第二個查詢中獲得了連接;所有你需要做的是選擇你想要的實際列。

SELECT e.Id, e.Version, e.Name, i.Name AS ImplementationId, e.ManagedDataRepoId, e.Description, e.ParentId 
FROM Implementation i 
    JOIN Entity e 
     ON e.ImplementationId = i.Id 
+0

完美!那正是我需要的。有沒有辦法讓它將結果稱爲'ImplementationId'而不是現在稱之爲'Name'?將結果解析爲JSON,然後將其輸入到DataTables顯示中,以便期望保留列標題 – user2069834 2013-05-07 19:56:32

+0

@ user2069834:有多種重命名列的方法,但我已在上面包括了一個。這些都是非常基本的SQL問題;我會建議在SQL查詢上做一些閱讀。 – zimdanen 2013-05-07 19:59:41

+0

謝謝!是的,SQL通常不是我工作的東西,但這個項目需要一點點它,我幾乎能夠得到所有東西,但這一點。 :) 非常感謝! – user2069834 2013-05-07 20:01:15

2

是安全的,使用表的別名爲每列

SELECT e.Id, e.Version, e.Name,i.Name, e.ManagedDataRepoId, e.Description, e.ParentId from Implementation i 
JOIN Entity e 
ON e.ImplementationId = i.Id 
0

...把​​事情漂亮(更易讀),你可以在一個更標準地攤開來;

SELECT e.Id, 
     e.Version, 
     e.Name, 
     i.Name, 
     e.ManagedDataRepoId, 
     e.Description, 
     e.ParentId 
FROM Implementation i 
     INNER JOIN Entity e 
     ON e.ImplementationId = i.Id