通过PDO读取数据 - 同一行被带两次

时间:2011-05-12 03:41:05

标签: php sql-server

我通过PHP PDO读取某些mssql表中的行。

某些行被带到两次,完全相同的行,具有完全相同的 id

  • 特定行会发生这种情况。每次运行我的导入脚本时,问题都发生在同一行上。例如,在正确地带来一些16,000行之后,一行(每次都是相同的一行)被带两次。
  • 重复发生在一行中。该行被带来,下一个fetch()请求返回同一行。
  • 我跑的时候:  从MY_TABLE中选择*,其中id ='有问题的ID' 只返回一行,而不是两行

任何想法(地狱)可以在这里发生什么?

非常感谢你们

编辑: 正在运行的查询:

select o.accountid, c.contactid, o.opportunityid, o.createdate, o.modifydate, o.createuser, o.modifyuser, o.description, o.projclosedate, o.notes, o.accountmanagerid 
from sysdba.opportunity o 
left join sysdba.opportunity_contact oc on o.opportunityid = oc.opportunityid and oc.salesrole = 'speaker' ";
left join sysdba.contact c on c.contactid = oc.contactid 
where o.status <> 'Inactive' 
order by o.opportunityid asc;

1 个答案:

答案 0 :(得分:1)

我认为您需要将contact表加入opportunity表。您似乎可能没有按照设置方式在这些表之间进行1对1映射。见下文:

--This should reference the "o" table but it doesn't.
left join sysdba.contact c on c.contactid = oc.contactid 

如果情况并非如此,那么您应该真正加入opportunity_contact表格(将其作为'from'表格)。