2013-05-08 81 views
0

我真的不知道如何使這個問題的具體問題,所以我會盡我所能來解釋SQL如何選擇在同一個語句返回的值

有問題的表具有場景以下專欄。

**Table#1 Patients** 
-PatID 
-Name 
-Guarantor FK_PatID (Refer to Patients Table) 

好吧,讓我們說我想從一個SQL查詢中選擇患者姓名和他的保證人的名字。

SELECT p.Name, p.Guarantor 
FROM Patients P 

這種說法會得到我的病人的名字和擔保人的PatID,但我怎麼能匹配保證人的ID來獲得它的名字在相同的SQL語句?

+0

功課問題一個經典的例子? – 2013-05-08 20:36:55

+0

不太可能。更像是一個剛接觸SQL的開發人員。 – Renan 2013-05-08 20:37:12

+0

你確實擁有保證人的姓名嗎?也許在第二張桌子? – 2013-05-08 20:38:02

回答

5

您可以在自己

SELECT P.Name, P.Guarantor, P2.Name 
FROM Patients P 
INNER JOIN Paitents P2 on P2.PatId = P.Guarantor 
+0

謝謝..這就是我要找的=) – Jay 2013-05-08 20:59:01

-1
Select p.name from Patients p where 
p.guarantor in (select p1.guarantor from patients p1 where name = 'foo') 

這將讓你的擔保人的名稱爲所有患者稱爲加入牌桌。您只需在另一個查詢的where子句中使用查詢。

+0

這裏的IN運算符是一種以1:1關係完成自連接的方式。 – 2013-05-08 20:41:16