-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

我猜你只需要一张表中的数据。所以,不要使用连接(这是你在那里的隐藏连接),而是使用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 回答