2010-06-08 100 views
1

我不習慣使用PostgreSQL,但使用Zend_Db_Select來創建我的查詢。 下面的錯誤是什麼意思?爲什麼PostgreSQL必須有所不同(方案不存在)?

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') 

回答

6

它解析il.count(*)爲在架構中「IL」功能「計數」的呼叫。也許你想要的是表達:

count(il.*) 
5

您可以像PostgreSQL中的數據庫那樣考慮模式。也請嘗試刪除所有內容中的雙引號,因爲這很簡單,可能會導致問題。

哦,我看到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

+1用於刪除雙引號。當人們在MySQL聲明中反駁所有事情時,這同樣刺激我......可能壞習慣來自哪裏! – Charles 2010-06-08 02:34:58

+0

引號是由Zend_Db_Select自動插入的 – 2010-06-08 02:36:29

+0

如果標識符不是小寫字母(不是你的情況,但是無論如何),引號會導致postgresql中的意外行爲。 Khorkrak給出了正確的理智語法 – leonbloy 2010-06-08 03:02:27

1

的Postgres的解釋「il」,在「il.count(*)」作爲架構名稱。你可以簡單地省略它,並要求count(*),或者如果你想得到具體的,count(il.*)

如果你來自MySQL,模式是世界其他地方稱爲MySQL調用數據庫的東西。

相關問題