Ошибка SQL-запроса Dovecot — почему?

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'   

Что не так с этим запросом? Постгрескл говорит:

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

person JohKa    schedule 04.12.2014    source источник
comment
DOMAIN — это слово, используемое в синтаксисе. Старайтесь не использовать его в качестве идентификатора или заключайте его (до конца жизни) в двойные кавычки.   -  person wildplasser    schedule 05.12.2014
comment
@wildplasser MySQL использовал обратные кавычки для устранения неоднозначности, разве это не подходит для postgres?   -  person Kondybas    schedule 05.12.2014
comment
Нет, Postgres (и стандарт SQL) требуют двойных кавычек ("DOMAIN"). Обратные кавычки — это изобретение mysql. (Кстати: JOIN по-прежнему нуждается в предложении ON ..., очевидно)   -  person wildplasser    schedule 05.12.2014


Ответы (1)


попробуй это

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'
person heximal    schedule 04.12.2014