想知道是否有人可以請解釋這兩個查詢之間的差異,並建議爲什麼一個工程,另一個不工作。SELECT DISTINCT。請解釋?
這一個工程。給我兩個獨特的GantryRtn值和它們對應的SSD值的記錄。
SELECT DISTINCT GantryRtn as Gantry, ROUND(Field.SSD,1) as SSD
FROM Field, PlanSetup, Course, Patient, Radiation
WHERE Field.RadiationSer=Radiation.RadiationSer
AND Radiation.PlanSetupSer=PlanSetup.PlanSetupSer
AND PlanSetup.CourseSer=Course.CourseSer
AND Course.PatientSer=Patient.PatientSer
AND Patient.PatientId='ZZZ456'
AND PlanSetup.PlanSetupId='F T1 R CHEST'
但是沒有在場錶鏈接到包含各領域的純文本名稱的另一個表的主鍵的外鍵。我還想通過拔出這個外鍵RadiationSer來提取該名稱(如果必須,請在單獨的查詢中)。但只要我將RadiationSer放入查詢中,我就失去了我的DISTINCT結果。
SELECT DISTINCT GantryRtn as Gantry, ROUND(Field.SSD,1) as SSD, Field.RadiationSer
FROM Field, PlanSetup, Course, Patient, Radiation
WHERE Field.RadiationSer=Radiation.RadiationSer
AND Radiation.PlanSetupSer=PlanSetup.PlanSetupSer
AND PlanSetup.CourseSer=Course.CourseSer
AND Course.PatientSer=Patient.PatientSer
AND Patient.PatientId='ZZZ456'
AND PlanSetup.PlanSetupId='F T1 R CHEST'
這第二個查詢給了我7條記錄與非明顯GantryRtn值。
爲什麼會發生這種情況?
我已經使用GROUP BY進行了調查,但是這會降低查詢速度,並且似乎將所有GantryRtn的數據庫(記錄數爲100)都拉出來。
感謝 格雷格
[選擇不同於多個字段使用sql](http://stackoverflow.com/q/546804/),[多個列中不同的sql查詢](http://stackoverflow.com/q/1503080 /),[多列DISTINCT](http://stackoverflow.com/q/5804529/) – outis
嗨outis,謝謝,但我不明白爲什麼這些查詢(和我的第一個)工作,但我的第二個不'噸。我已經在第一個查詢中選擇了一個DISTINCT中的多個列。我想了解爲什麼添加另一列導致DISTINCT失敗?所以問題是「爲什麼它不起作用?」而不是「我如何做這項工作?」 – Barbs