2013-03-28 37 views
-3

我有这个疑问:MySQL查询重复

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结果。这是为什么?

+2

你应该阅读abouts连接。 –

+0

此问题没有显示任何研究工作。 **做你的作业很重要**。告诉我们你发现了什么,***为什么它不符合你的需求。这表明你已经花时间去尝试帮助你自己了,它使我们避免重申明显的答案,最重要的是它可以帮助你得到更具体和相关的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 – Kermit

+0

你可以发布一些样本数据,然后期望的结果? – Taryn

回答

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' ; 
+0

美丽的答案!非常感谢你。 –