无法将一个表的列替换为另一个表

时间:2015-10-04 19:07:14

标签: php mysql sql join sql-update

我的代码是

<?php
include('conn.php');
$insert=$membersdb->query("UPDATE members SET  Username=properties.Username FROM members JOIN uidlist on  members.Username=Properties.Username"); echo "Error : ".$membersdb->error."<br>";
if($insert){echo "Done !<br>";}else{echo "Not Done !<br>";

$insert2=$membersdb->query("UPDATE members SET Username=`uidlist.Username'"); echo "Error : ".$membersdb->error."<br>";
if($insert2){echo "Second Insert Done !<br>";}else{echo "Second Insert Also Not Done !<br>";}

$insert3=$membersdb->query("Update members Set Username =(Select uidlist.Username From uidlist) WHERE members.Name=uidlist.Name"); echo "Error : ".$membersdb->error."<br>";
if($insert3){echo "Third Insert Done !<br>";}else{echo "Third Insert  Also Not Done !<br>";}
}

我正在尝试三种不同的查询来将members表的用户名替换为用户名uidlist

错误如下:

  

错误:您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近&#39; FROM成员加入uidlist   members.Username = Properties.Username&#39;第1行未完成!

     

错误:未知栏&#39; uidlist.Username&#39;在&#39;字段列表&#39;第二   插入也不完成!

     

错误:未知栏&#39; uidlist.Name&#39;在&#39; where子句&#39;第三次插入   还没完成!

2 个答案:

答案 0 :(得分:1)

第一个语句有正确的想法,尽管语法不正确,正如您所注意到的那样。在MySQL中,join子句位于set子句之前:

UPDATE members m
JOIN   uidlist u on m.name = u.name
SET    m.Username = u.Username 

答案 1 :(得分:1)

  1. 更新语法没有 FROM ,请参阅任何网站以供参考。

  2. `uidlist.Username'这不正确你应该使用select语句。

  3. 这是一个简单的错误。您的列名是 uidlist.username 而不是 uidlist.Name