2014-12-04 2 views
1
SELECT CONCAT('maildir:/var/vmail/',maildir) AS mail, 
     5000 AS uid, 
     5000 AS gid 
FROM mailbox 
INNER JOIN domain 
WHERE username = '[email protected]' 
    AND mailbox.active = '1' 
    AND domain.active = '1' 

Что случилось с этим вопросом? Postgresql говорит:Ошибка Dovecot SQL Query - Почему?

'ERROR: syntax error at or near "WHERE" 
LINE 1: ...S uid, 5000 AS gid FROM mailbox INNER JOIN domain WHERE user...' 
+1

'DOMAIN' это слово используется в синтаксисе. Старайтесь избегать использования его в качестве идентификатора или цитируйте его (на всю оставшуюся жизнь) с двойными кавычками. – wildplasser

+0

@wildplasser MySQL использовал backquotes для устранения неоднозначности, не подходит ли он для postgres? – Kondybas

+0

Нет, Postgres (и стандарт SQL) требуют двойных кавычек ('' DOMAIN ''). Backticks являются изобретением mysql. (BTW: 'JOIN' по-прежнему нуждается в условии« ON ... », очевидно) – wildplasser

ответ

0

попробовать это

SELECT CONCAT('maildir:/var/vmail/',maildir) AS mail, 
     5000 AS uid, 
     5000 AS gid 
FROM mailbox 
INNER JOIN DOMAIN on 
    username = '[email protected]' 
    AND mailbox.active = '1' 
    AND DOMAIN.active = '1' 
+0

по-прежнему такая же ошибка – JohKa