Вопрос по БД

  • Автор темы Автор темы Rooter85
  • Дата начала Дата начала

Rooter85

Client
Регистрация
04.07.2015
Сообщения
246
Реакции
64
Баллы
28
Перестала работать конструкция
SELECT * FROM table2
INNER JOIN table3 ON table3.id1 = table2.id1
WHERE table2.id1 NOT IN (SELECT table3.id1 FROM table3)
не находит значений хотя они есть.
Что могло случиться? С БД ничего сам не делал.
БД заполнялась шаблоном, который брал значения из table2 на основе их делал парсинг и
заполнял table3.
 
Если поменять условия отбора на
WHERE table2.id1 IN (SELECT table3.id1 FROM table3)
то все работает. Пробовал менять соединения на просто JOIN и LEFT JOIN, хотя работало всегда и так,
но результат тот же. Могло ли перестать работать если менялись данные в table2? Она в свою очередь постоянно изменяется.
 
Есть вариант оставить свой скайп, у меня вопрос к тебе?
 
ошибку какую пишет? в самой бд пробовал выполнить запрос? там обычно пишет причину
 
ошибку какую пишет? в самой бд пробовал выполнить запрос? там обычно пишет причину
Проблема решена. Ошибка возникла из-за того, что поле id1 в table3 оказалось null. Я этого предположить не мог, т.к. оно должно было подставляться из table2 где оно не null. Произошел какой-то сбой при заполнении table3. Чтобы такого не было впредь сделал что поле id1 в table3 не может быть null. Теперь все работает. Хотел отметить в теме что проблема решена, но отметка solved стала не доступна. Спасибо всем кто хотел помочь за участие.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)