【问题标题】:Not able to replace column of one table with another无法用另一个表替换一个表的列
【发布时间】:2016-01-01 10:35:51
【问题描述】:

我的代码是

<?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>";}
}

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

错误如下:

错误:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 'FROM members JOIN uidlist on members.Username=Properties.Username' 在第 1 行未完成!

错误:“字段列表”第二个中的未知列“uidlist.Username” 插入也未完成!

错误:“where 子句”第三次插入中的未知列“uidlist.Name” 也没有完成!

【问题讨论】:

    标签: php mysql sql join sql-update


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      1. 更新语法没有FROM查看任何站点以供参考。

      2. `uidlist.Username' 这是不正确的,您应该改用 select 语句。

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

      【讨论】:

        猜你喜欢
        • 2013-08-26
        • 1970-01-01
        • 2020-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        • 1970-01-01
        • 2015-11-30
        相关资源
        最近更新 更多