Archive for February 19th, 2010

Выбираем данные из некоторой таблички:

SELECT foo,bar FROM table1 WHERE условия;

Всё отлично, данные выбираются. Но мне нужны не все, а только те, которые не встречаются в другой табличке.Проверяю парочку:

SELECT * FROM table2 WHERE foo='foo1';

Ура, ничего не находится. Значит, они должны появиться в итоговой выборке. Пишем окончательный запрос:

SELECT foo,bar FROM table1 WHERE условия
AND foo NOT IN (SELECT foo FROM table2);

И.. получаем индейскую национальную избу. 0 rows, и всё тут. Данных в table2 совершенно точно нет, но и из table1 они выбираться перестали.

Профессиональные DBA уже, наверное, догадались, в чём дело, но поскольку я не, мне на это понадобилось минут 10..

наглядный пример: жуткий глюк с облостями видимости