Почему PostgreSQL должен быть другим (схема не существует)? - PullRequest
1 голос
/ 08 июня 2010

Я не привык работать с PostgreSQL, но использую Zend_Db_Select для создания своих запросов. Что означает ошибка ниже?

SQL error:
ERROR:  schema "il" does not exist

In statement:
SELECT il.count(*) AS "count" FROM "image_lite" AS "il" 
INNER JOIN "exif_parse" AS "ex" ON il.image_id = ex.image_id 
WHERE (ex.cam_make = 'apple')

Ответы [ 3 ]

6 голосов
/ 08 июня 2010

Он анализирует il.count(*) как вызов функции "count" в схеме "il".Вероятно, что вы хотите, это выражение:

count(il.*)
5 голосов
/ 08 июня 2010

Вы можете думать о схеме в PostgreSQL как о базе данных в MySQL. Также попробуйте удалить двойные кавычки вокруг всего, потому что это просто странно и может быть причиной проблемы.

О, я вижу, что il.count (*) не имеет никакого смысла вообще.

Просто сделайте это вместо:

select count(*) cnt       
  from image_lite il 
  join exif_parse ex on il.image_id = ex.image_id 
 where ex.cam_make = 'apple'
1 голос
/ 08 июня 2010

Postgres интерпретирует «il» в «il.count(*)» как имя схемы. Вы можете просто опустить его и запросить count(*), или, если хотите получить конкретный, count(il.*)

Если вы используете MySQL, схемы - это то, что остальной мир называет базой данных MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...