0

私は2つのテーブルを持っています、company_infoそしてcomp_orders

次のクエリを実行します。

$sql = "Update s1 SET s1.Comp_Addr = s2.Comp_Addr 
        Where s1.Comp_Name=s2.Comp_Name AND 
        s1.ID_No='$id' FROM comp_orders s1 , company_info s2";

しかし、それは機能していません。返されるエラーは

「SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、1行目の「FROMcomp_orders s1、company_infos2」の近くで使用する正しい構文を確認してください。」

4

8 に答える 8

1

JOIN次のように 2 つのテーブルを作成する必要があります。

Update comp_orders s1
INNER JOIN  company_info s2 ON s1.Comp_Name=s2.Comp_Name 
SET s1.Comp_Addr = s2.Comp_Addr 
[Where ...] --optional perediate
于 2012-09-26T11:42:14.487 に答える
1
UPDATE comp_orders s1
INNER JOIN company_info s2 on s1.Comp_Name=s2.Comp_Name
SET s1.Comp_Addr = s2.Comp_Addr 
WHERE s1.ID_No = '$id' 

簡略化された SQL フィドルの例

于 2012-09-26T11:42:57.327 に答える
1

FROM中では使えませんupdate

クエリは

$sql = "Update s1 SET s1.Comp_Addr = s2.Comp_Addr Where s1.Comp_Name=s2.Comp_Name AND s1.ID_No='$id'";
于 2012-09-26T11:42:59.813 に答える
0

更新クエリが間違っているようです。私は以下がうまくいくはずだと思います:

$sql = "
    Update comp_orders s1, company_info s2 SET 
        s1.Comp_Addr = s2.Comp_Addr 
        Where s1.Comp_Name=s2.Comp_Name AND s1.ID_No='$id'";
于 2012-09-26T11:42:35.730 に答える
0
$sql = "Update s1 SET s1.Comp_Addr = s2.Comp_Addr Where s1.Comp_Name=s2.Comp_Name AND s1.ID_No='$id' FROM comp_orders.s1 , company_info.s2"; 

代わりにこれを試してください。ドットがありませんでした..

他にもエラーがあります -アップデートを調べてください

于 2012-09-26T11:42:52.483 に答える
0

UPDATE … FROM? これはどの SQL 方言ですか? 私は前にそれを見たことがありません。

FROMMySQL 節にはありませんUPDATE: http://dev.mysql.com/doc/refman/5.0/en/update.html

于 2012-09-26T11:43:07.167 に答える
0

次のことを試してみるとどうなりますか。

UPDATE comp_orders s1, company_info s2
SET s1.Comp_Addr = s2.Comp_Addr 
WHERE s1.Comp_Name = s2.Comp_Name 
AND s1.ID_No='$id'
于 2012-09-26T11:46:05.263 に答える
0

試す

UPDATE comp_orders s1
INNER JOIN company_info s2 USING(`Comp_Name`)
SET s1.Comp_Addr = s2.Comp_Addr 
WHERE s1.ID_No = '$id'

また

UPDATE comp_orders s1 company_info s2 
SET s1.Comp_Addr = s2.Comp_Addr 
WHERE s1.ID_No='$id'

参照

于 2012-09-26T11:46:14.403 に答える