簡體   English   中英

在插入語句中使用別名

[英]Using alias in insert statement

我是大多數時間都使用ORM的SQL新手。 我在以下查詢中遇到別名麻煩:

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語句中使用它們嗎?

這個怎么樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM