-3

私はこのクエリを持っています:

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 がない結果が複製されます。何故ですか?

4

1 に答える 1

2

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' ;
于 2013-03-28T18:27:56.923 に答える