#php #sql-server
#php #sql-сервер
Вопрос:
Я читаю строки из некоторой таблицы mssql через PHPs PDO.
Некоторые строки выводятся дважды, точно такие же строки, с точно такими же значениями id
- Это происходит с определенными строками. Каждый раз, когда я запускаю свой скрипт импорта, проблема возникает в одних и тех же строках. Например, после правильного ввода около 16 000 строк одна строка, каждый раз одна и та же, выводится дважды.
- Дублирование происходит в строке. Строка выводится, и следующий запрос fetch() возвращает ту же самую строку.
- Когда я запускаю: select * from MY_TABLE где 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. Возможно, у вас произошло некоторое умножение строк. Опубликуйте точный запрос, который вы выполняете.
2. У вас где-то неправильное соединение — пожалуйста, отправьте запрос, который используется для извлечения строк..
3. Ну, вот оно (выше)
4. Это вернет все неактивные записи из «возможности». Это то, чего вы хотите?
5. Кроме того, вы можете захотеть указать «o.status <> ‘Неактивный» как часть обоих этих условий объединения
Ответ №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’).
Комментарии:
1. Это то, что я делаю. Или вы имеете в виду порядок?
2. Если вы можете отредактировать свой вопрос, чтобы лучше представить, как выглядят эти таблицы и как вы хотите, чтобы выглядели ваши результаты, тогда я, вероятно, смогу быть более полезным