Вопрос по БД

Rooter85

Client
Регистрация
04.07.2015
Сообщения
244
Благодарностей
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.
 

Rooter85

Client
Регистрация
04.07.2015
Сообщения
244
Благодарностей
64
Баллы
28
Если поменять условия отбора на
WHERE table2.id1 IN (SELECT table3.id1 FROM table3)
то все работает. Пробовал менять соединения на просто JOIN и LEFT JOIN, хотя работало всегда и так,
но результат тот же. Могло ли перестать работать если менялись данные в table2? Она в свою очередь постоянно изменяется.
 

asdasdasdasdas

Новичок
Регистрация
08.08.2014
Сообщения
3
Благодарностей
0
Баллы
1
Есть вариант оставить свой скайп, у меня вопрос к тебе?
 

sprint16

Client
Регистрация
11.08.2016
Сообщения
51
Благодарностей
9
Баллы
8
ошибку какую пишет? в самой бд пробовал выполнить запрос? там обычно пишет причину
 

Rooter85

Client
Регистрация
04.07.2015
Сообщения
244
Благодарностей
64
Баллы
28
ошибку какую пишет? в самой бд пробовал выполнить запрос? там обычно пишет причину
Проблема решена. Ошибка возникла из-за того, что поле id1 в table3 оказалось null. Я этого предположить не мог, т.к. оно должно было подставляться из table2 где оно не null. Произошел какой-то сбой при заполнении table3. Чтобы такого не было впредь сделал что поле id1 в table3 не может быть null. Теперь все работает. Хотел отметить в теме что проблема решена, но отметка solved стала не доступна. Спасибо всем кто хотел помочь за участие.
 

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