Использование псевдонима в операторе вставки - PullRequest
1 голос
/ 14 марта 2012

Я новичок в SQL, большую часть времени использующий ORM. У меня проблемы с псевдонимами в следующем запросе:

command.CommandText = @"
    INSERT INTO permissions (userid, remoteid)
        SELECT userid as uid, :remoteid as rid
        FROM users
        WHERE companyid = :companyid
            AND NOT EXISTS (
                SELECT 1
                FROM permissions
                WHERE userid = uid
                AND remoteid = rid
            )";

command.Parameters.AddWithValue("companyid", companyId);
command.Parameters.AddWithValue("remoteid", resourceId);

Когда запрос выполняется, я получаю следующую ошибку:

ERROR: 42703: column "uid" does not exist

Что я делаю не так? Должны ли псевдонимы использоваться таким образом и могут ли они использоваться в операторе INSERT?

1 Ответ

1 голос
/ 14 марта 2012

как насчет этого:

command.CommandText = @"
    INSERT INTO permissions (userid, remoteid)
        SELECT userid, :remoteid as rid
        FROM users uid
        WHERE companyid = :companyid
            AND NOT EXISTS (
                SELECT 1
                FROM permissions
                WHERE userid = uid.userid
                AND remoteid = rid
            )";

command.Parameters.AddWithValue("companyid", companyId);
command.Parameters.AddWithValue("remoteid", resourceId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...