私はこのクエリを持っています:
SELECT r.id, r.RowID, r.RAMQ, r.Type, r.Description, r.Deleted
FROM reminders r, patientdetails
WHERE (patientdetails.RAMQ = r.RAMQ OR r.RAMQ='none' )
AND r.Deleted != '1'
このクエリを実行すると、RAMQ がない結果が複製されます。何故ですか?
私はこのクエリを持っています:
SELECT r.id, r.RowID, r.RAMQ, r.Type, r.Description, r.Deleted
FROM reminders r, patientdetails
WHERE (patientdetails.RAMQ = r.RAMQ OR r.RAMQ='none' )
AND r.Deleted != '1'
このクエリを実行すると、RAMQ がない結果が複製されます。何故ですか?
1 つのテーブルのみからのデータが必要だと思います。したがって、結合 (そこにある非表示の結合) を使用しないで、EXISTS
サブクエリを使用してください。
SELECT r.id, r.RowID, r.RAMQ, r.Type, r.Description, r.Deleted
FROM reminders AS r
WHERE ( r.RAMQ = 'none'
OR EXISTS
( SELECT *
FROM patientdetails AS p
WHERE p.RAMQ = r.RAMQ
)
)
AND r.Deleted <> '1' ;