誰かがこれら 2 つのクエリの違いを説明し、一方が機能し、もう一方が機能しない理由を教えてください。
これは機能します。個別の GantryRtn 値とそれに対応する SSD 値の 2 つのレコードが表示されます。
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'
この 2 番目のクエリでは、 GantryRtn値が明確でない 7 つのレコードが得られます。
なぜこれが起こるのですか??
GROUP BY を使用して調査しましたが、これによりクエリが遅くなり、すべての GantryRtn がデータベース (数百のレコード) から引き出されたように見えます。
ありがとうグレッグ