【发布时间】:2015-11-20 19:52:20
【问题描述】:
我有 2 个 MySQL 表。
Table_1(待更新):
ID LINK NEW_ID
1 4866
2 1790
3 7723
Table_2(待加入):
ID LINK
47 1790
49 4866
51 7723
我想通过将表 2 中的 ID 添加到“NEW_ID”列来更新表 1。这样做是有原因的,而不是让表格继续连接。
我尝试了几个 MySQL 查询,最新的查询如下所示。我得到了错误。
$query_string = '
UPDATE Table_1
SET NEW_ID = (
SELECT Table_2.ID
FROM Table_2
LEFT JOIN Table_1 ON Table_1.LINK = Table_2.LINK
)
';
mysqli_query( $GLOBALS['db_link'], $query_string ) or die( mysqli_error( $GLOBALS['db_link'] ) );
错误 您不能在 FROM 子句中指定目标表 'Table_1' 进行更新
【问题讨论】:
-
我收到错误...什么错误?我没有看到。
-
使用连接来限制查询结果是不好的做法。如果您只想限制结果,请使用 where 子句。
WHERE LINK=Table_1.LINK -
您正在子查询中从 table_1 中进行选择,这意味着从外部
update的角度来看它已被有效锁定。您可以在更新级别进行连接。update table_1 set new_id=table_2.id left join table_2 on table_1.link = table_2.link
标签: php mysql mysqli left-join