MySql更新,其中表A.col_1位于表B.col_1和表B.col_2之间
你能帮我做一个sql查询吗 我想从另一个表中获取值,但无法使用内部联接,因为这两个表中的联接列不完全相同。相反,我必须检查Table_B.zip_min和Table_B.zip_max之间的Table_A.clubZipCode所在的位置 这是我迄今为止的研究成果:MySql更新,其中表A.col_1位于表B.col_1和表B.col_2之间,mysql,sql-update,Mysql,Sql Update,你能帮我做一个sql查询吗 我想从另一个表中获取值,但无法使用内部联接,因为这两个表中的联接列不完全相同。相反,我必须检查Table_B.zip_min和Table_B.zip_max之间的Table_A.clubZipCode所在的位置 这是我迄今为止的研究成果: UPDATE Table_A SET Table_A.clubState = Table_B.state FROM clubs_data AS Table_A JOIN zip_to_state AS
UPDATE
Table_A
SET
Table_A.clubState = Table_B.state
FROM
clubs_data AS Table_A
JOIN zip_to_state AS Table_B
WHERE
Table_A.clubZipCode BETWEEN Table_B.zip_min AND Table_B.zip_max
但是,它在第5行绘制了一个语法错误。
谢谢大家! 我不知道您想要实现什么,但通常使用JOIN的更新语法如下:
UPDATE clubs_data AS Table_A
JOIN zip_to_state AS Table_B
ON Table_A.clubZipCode >= Table_B.zip_min
AND Table_A.clubZipCode <= Table_B.zip_max
SET Table_A.clubState = Table_B.state;
编辑:在这种情况下,使用子查询可能更适合您。以下是使用有效语法重新编写的查询:
UPDATE clubs_data
SET clubState = (
SELECT state
FROM zip_to_state
WHERE clubs_data.clubZipCode >= zip_to_state.zip_min AND clubZipCode <= zip_to_state.zip_max
LIMIT 1
);
无论如何谢谢你。很高兴知道未来查询的正确语法。