Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Почему такой запрос не работает?
FROM base.schema.table1 AS a, base.schema.table2 AS b
WHERE b.id IN(350000, 450000)AND a.id IN(789, 450);
Он выдает 4 строки! Где id=789 два раза и 450 два раза. А из b.id ничего не выводит. В чем проблема? Можно выводить просто через b.id='350000' AND b.id='450000', но этот способ значительно медленней, чем IN (число, число). Проверено миллион раз)))
База PostgreSQL. Подскажите в чем собака зарыта? )
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
А по какому полю Вы связываете таблицы?? Судя по этому запросу, он должен быть разбит на 2 отдельных.
antobra
Отправлено: 29 Декабря, 2012 - 19:47:34
Посетитель
Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010
Помог: 1 раз(а)
SAD, Да, это две отдельные таблицы с одинаковыми столбцами. Они были разбиты для того, чтобы не пришлось бегать по большой базе.
В таблице 'a' записи id с 1 по 300000, в 'b' с 300001 по 600000.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.