2010-02-13 69 views
2

我與SQL技能是簡單的,所以我不知道如何做到這一點。這裏不言而喻。SQL - 選擇內選擇

讓我們考慮一下。

Table A 
ID    Name    LastNameID 
1    Jonh    23 
2    Helen    19 

Table B 
ID    LastName 
23    Bauer 
19    Summers 

SELECT ID Name LastNameID FROM TableA 

我如何添加一個將從表B根據表A.

的LastNameID在這種情況下返回的名字我通常使用一個簡單的功能的編程語言內的另一個選擇我用它來爲每個返回的行做這件事。

但我認爲是時候單獨使用SQL了。

任何幫助表示讚賞。

回答

5

你只需要加入使用LastNameId字段的表:

SELECT TableA.[Name] AS FirstName, TableB.LastName 
FROM TableA 
    INNER JOIN TableB ON TableA.LastNameId = TableB.LastNameId 
+0

我想你的答案......但現在我得申請他們做4個表之間的這種關係。它可能需要一段時間。謝謝。 – 2010-02-13 05:29:04

0

你問「怎麼有選擇做這裏面選擇」。通常,這些查詢是以連接的形式寫入的,而不是作爲子選擇。進行連接比對少量表格進行子選擇要好。

您的應用程序的查詢是

SELECT firstNames.Name, lastNames.LastName FROM TableA firstNames, TableB lastNames 
WHERE firstNames.LastNameId = lastNames.LastNameId; 

這是一樣的,如他的回答顯示由克里斯在顯式連接形式編寫查詢。

+0

感謝您的幫助。它可能會這樣做 – 2010-02-13 05:30:03

+0

寫得很好的數據庫引擎通常會以相同的方式計劃查詢。但使用連接更具慣用性。 – 2010-02-13 05:30:56

+0

jrharshath你能解釋你的代碼是如何進行的嗎?所以我可以在我的應用程序中大規模應用它。這將在Sql Server CE上工作嗎? – 2010-02-13 08:20:35

0

有一些很好的答案在這裏,但如果你確實有一個表中的姓氏和名字由ID相連接的另一個表 - 我認爲現在是時候複習基礎知識。開始看Northwind數據庫andmthen一些數據庫入門套件here.

+1

我用的名字和姓氏爲比較簡單的可能..這只是一些它來到我的頭。我絕對不會那樣做。但解決辦法是其他情況非常好。 – 2010-02-13 05:25:26