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

Php 通过PDO读取数据-同一行被带两次,php,sql-server,Php,Sql Server,我通过PHPs PDO从一些mssql表中读取行 有些行被带到两次,完全相同的行,具有完全相同的id值 这种情况发生在特定行上。每次运行导入脚本时,问题都发生在相同的行上。例如,在正确带出大约16000行后,一行(每次相同一行)被带出两次 重复发生在一行中。行被带出,下一个fetch()请求返回完全相同的行 当我跑步时: 从MY_表中选择*,其中id='有问题的id' 只返回一行,而不是两行 你知道这里会发生什么吗 非常感谢各位 编辑: 正在运行的查询: select o.accountid

我通过PHPs PDO从一些mssql表中读取行

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

  • 这种情况发生在特定行上。每次运行导入脚本时,问题都发生在相同的行上。例如,在正确带出大约16000行后,一行(每次相同一行)被带出两次
  • 重复发生在一行中。行被带出,下一个fetch()请求返回完全相同的行
  • 当我跑步时: 从MY_表中选择*,其中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;
选择o.accountid、c.contactid、o.opportunityid、o.createdate、o.modifydate、o.createuser、o.modifyuser、o.description、o.projclosedate、o.notes、o.accountmanagerid
来自sysdba.o
left join sysdba.opportunity\联系oc on o.opportunityid=oc.opportunityid和oc.salesrole='speaker';
左连接sysdba.contact c on c.contactid=oc.contactid
其中o.状态为“不活动”
o.opportunityid asc的订单;

我认为您需要将您的
联系人
表加入到您的
opportunity
表中。看起来您可能没有按设置方式在这些表之间建立1对1映射。请参阅以下内容:

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

如果不是这样的话,那么你真的应该围绕
opportunity\u contact
表进行连接(将其作为“from”表)。

可能你有一些行乘法。发布你执行的精确查询。你在某个地方有一个错误的连接-请发布用于检索行的查询。。好的,这就是(上图)这将从“opportunity”返回所有非活动记录。这是您想要的吗?此外,您可能希望将“o.status”设置为非活动状态“作为加入条件的一部分,这就是我正在做的。或者你的意思是顺序?如果你能编辑你的问题,更好地描述那些表格的样子,以及你希望你的结果是什么样子,那么我可能会更有帮助