2012-06-15 88 views
0

以下是我的查詢和相關的錯誤。我究竟做錯了什麼?更新嵌套查詢

update aaalogin 
    set name = 
     (select aaacontactinfo.emailid 
     from aaacontactinfo 
     WHERE aaalogin.user_id = aaausercontactinfo.user_id 
      and aaausercontactinfo.contactinfo_id = aaacontactinfo.contactinfo_id 
    ); 

我得到的

Error: Unknown column 'aaausercontactinfo.user_id' in 'where clause'

+0

不知道那是什麼。你能詳細說明嗎? - 我是個白癡,我以爲你在談論關於mysql的東西。當我找到一個可行的答案時,我會接受答案。 –

+0

明天我會試試。晚上 – 2012-06-15 16:45:30

回答

0

aaausercontactinfo不包含在FROM表列表,請嘗試使用:

UPDATE aaalogin SET name = 
(
    SELECT aaacontactinfo.emailid 
    FROM aaacontactinfo, aaalogin, aaausercontactinfo 
    WHERE aaalogin.user_id = aaausercontactinfo.user_id 
    AND aaausercontactinfo.contactinfo_id = aaacontactinfo.contactinfo_id 
); 
+0

獲取錯誤「您無法在FROM子句中指定更新的目標表'aaalogin'。」 –

0

嘗試

UPDATE aaalogin SET name = 
(
    SELECT aaacontactinfo.emailid 
    FROM aaacontactinfo, aaausercontactinfo 
    WHERE aaalogin.user_id = aaausercontactinfo.user_id 
    AND aaausercontactinfo.contactinfo_id = aaacontactinfo.contactinfo_id 
); 

在無需aaalogin子查詢。如果使用的話,它甚至可能會在子查詢中返回多個記錄。

+0

錯誤1062(23000):重複條目「 - 」鍵爲'AaaLogin_UK10' –

+0

似乎您的名稱列是唯一的,並且子查詢返回現有名稱' - ' – user1149201