SQL如何选择在同一个语句返回的值
问题描述:
我真的不知道如何使这个问题的具体问题,所以我会尽我所能来解释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语句?
答
您可以在自己
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
答
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
答
SELECT
P1.Name,
P1.Guarantor+ 'is Guarantor of' +P2.Name
FROM Patients P1
INNER JOIN Paitents P2 on P2.PatId = P1.Guarantor
功课问题一个经典的例子? – 2013-05-08 20:36:55
不太可能。更像是一个刚接触SQL的开发人员。 – Renan 2013-05-08 20:37:12
你确实拥有保证人的姓名吗?也许在第二张桌子? – 2013-05-08 20:38:02