我试图获得SELECT
语句的每一行的第一个结果LEFT JOIN
。仅从左加入获取第一个结果
因为现在,如果我在连接表中有100行,我会从SELECT
获得100倍的同一行。我只需要第一个连接的行,这样我就不会有任何重复。
我不能使用GROUP BY
,因为我必须从表格中获取不止一行。
这里是我的查询的基本版本:
SELECT bg.PatientID, DATEDIFF(hour, bg.CreateDate, GETDATE()) TimeToTarget
FROM BloodGlucose bg
LEFT JOIN IVProtocol i ON i.PatientID = bg.PatientID
WHERE bg.BGValue >= i.TargetLow AND bg.BGValue <= i.TargetHigh
ORDER BY bg.PatientID ASC
我使用DISTINCT
尝试,但由于从bg.CreateDate
数据并不总是相同的它返回重复。
我只需要左连接表的第一行。
任何意见/建议?
谢谢!
你能解释一下你如何定义 “'FIRST'”? – 2012-08-13 17:21:33
我需要从'LEFT JOIN'中取得的第一个结果。但告诉你,我想我会需要一个子查询,因为没有加入顺序... – TomShreds 2012-08-13 17:23:45
是的,我仍然不知道你的意思是“第一结果” – 2012-08-13 17:24:11