sql-update
  • union
  • 2012-10-06 126 views 1 likes 
    1

    我是新來編寫檢查多個表的更大的查詢。我有這個SELECT查詢效果很好:使用UNION的SQL查詢

    $sql = mysql_query("UPDATE companies SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email' UNION UPDATE users SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email'") or die(mysql_error()); 
    

    我在做什麼錯:

    $result = mysql_query("SELECT * FROM companies WHERE email='$email' UNION SELECT * FROM users WHERE email='$email'") or die(mysql_error()); 
    

    但是,我用這UPDATE查詢不工作做編輯頁面?

    回答

    4

    無法將聯合更新語句放在一起。您只需將其分割成單獨的命令。換句話說,運行兩個查詢,一個用於公司,另一個用於用戶。

    +0

    謝謝......不知道。目前,我有'$ email = $ _SESSION ['email']'查詢更新它找到電子郵件的表。所以我必須先做一個select查詢然後更新兩個表? – robk27

    0

    根據你的問題,你可以用兩個更新來更新

    $sql1="UPDATE companies SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email'"; 
    $sql2="UPDATE users SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email"; 
    

    OR

    您可以選擇並在其中找到$電子郵件存在的表。

    sql1="select name form user where email=$email " 
    sql2="select name form companies where email=$email " 
    if(count($sql1>0)){ 
    UPDATE user SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email' 
    } 
    if(count($sql2>0)){ 
    UPDATE companies SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email' 
    } 
    
    相關問題