2011-05-12 83 views
0

我通過PHP PDO從某個mssql表中讀取行。通過PDO讀取數據 - 同一行帶兩次

一些行,都帶來了兩次,完全相同行,用完全相同的ID

  • 這發生在特定行。每次運行我的導入腳本時,問題都發生在同一行上。例如,在正確地帶來約16,000行之後,每行一次,同一行,帶來兩次。
  • 重複發生在一行中。該行被帶入,並且下一個fetch()請求返回同一行。
  • 當我運行: SELECT * FROM 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

也許你有一些行乘法。發佈您執行的確切查詢。 – zerkms 2011-05-12 03:42:09

+0

你有一個錯誤的加入某處 - 請發佈用於檢索行的查詢.. – 2011-05-12 03:47:45

+0

那麼,這裏是(上面) – shealtiel 2011-05-12 04:05:13

回答

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表連接,而不是(把它作爲你的「從」表)。

+0

這就是我正在做的。或者你的意思是這個命令? – shealtiel 2011-05-12 04:24:17

+0

如果您可以編輯您的問題以更好地描繪這些表格的外觀和您希望結果的外觀,那麼我可能會更有幫助 – 2011-05-12 04:34:48