2017-02-27 44 views
0

我對中從其它表中提取的Simplyfy MySQL查詢用於插入

INSERT INTO user (EmailAddress, InternalPhone, ExternalPhone, CreatedBy, DateCreated,roll_key,user_key) 
VALUES (NULL, NULL, NULL, 1, 'dba', Now(), 
(select r.roll_key from user u 
    join work wrk on u.work_key = wrk.Work_key 
    join roll r on r.Name = 'Ext' 
    where u.Name = 'test'), 
(select u.user_key from user u 
    join work wrk on u.work_key = wrk.Work_key 
    join roll r on r.Name = 'Ext' 
    where u.Name = 'test')) 

我怎麼能簡單地此查詢而不是選擇值的表中插入值,建立一個新的查詢工作陳述到值。

回答

2

你可以使用一個單一的選擇和分配的固定值僞列

INSERT INTO user (EmailAddress, InternalPhone, ExternalPhone, CreatedBy, DateCreated,roll_key,user_key) 
    select NULL, NULL, 1, 'dba', Now(), r.roll_key, u.user_key 
    from user u 
    join work wrk on u.work_key = wrk.Work_key 
    join roll r on r.Name = 'Ext' 
    where u.Name = 'test' 
+0

我得到一個錯誤說錯誤代碼:1064您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第2行的選擇NULL,NULL,NULL,1,'dba',Now(),r.roll_key,u.user_key附近使用正確的語法 – user4912134

+0

答案已更新。 – scaisEdge