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
Форумы портала PHP.SU :: Версия для печати :: Почему такой запрос не работает?
Форумы портала PHP.SU » » Работа с СУБД » Почему такой запрос не работает?

Страниц (1): [1]
 

1. antobra - 29 Декабря, 2012 - 19:31:33 - перейти к сообщению
Здравствуйте!

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT b.id, a.id
  3. FROM base.schema.table1 AS a, base.schema.table2 AS b
  4. 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. Подскажите в чем собака зарыта? )

С наступающим!
2. SAD - 29 Декабря, 2012 - 19:44:27 - перейти к сообщению
А по какому полю Вы связываете таблицы?? Судя по этому запросу, он должен быть разбит на 2 отдельных.
3. antobra - 29 Декабря, 2012 - 19:47:34 - перейти к сообщению
SAD, Да, это две отдельные таблицы с одинаковыми столбцами. Они были разбиты для того, чтобы не пришлось бегать по большой базе.
В таблице 'a' записи id с 1 по 300000, в 'b' с 300001 по 600000.

 

Powered by ExBB FM 1.0 RC1