SQL如何在同一语句中选择返回的值

时间:2013-05-08 20:34:34

标签: sql select

我真的不知道如何针对这个问题提出具体问题,所以我会尽力解释这个情景

相关表格包含以下列。

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

好的,我想说我想从单个SQL查询中选择患者的姓名,以及表中的担保人姓名。

SELECT p.Name, p.Guarantor
FROM Patients P

此声明将告诉我患者的姓名和担保人的PatID,但我如何才能匹配该担保人的ID以在同一个SQL声明中获取其姓名?

3 个答案:

答案 0 :(得分:5)

您可以自行加入表格

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

答案 1 :(得分:0)

这是 SELF JOIN

的经典示例
SELECT 
P1.Name, 
P1.Guarantor+ 'is Guarantor of' +P2.Name
FROM Patients P1
INNER JOIN Paitents P2 on P2.PatId = P1.Guarantor

类似 STACK OVERFLOW QUESTION

答案 2 :(得分:-1)

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

这将为您提供所有名为 foo 的患者的担保人姓名。您只需在另一个查询的where子句中使用查询。