MySql更新,其中表A.col_1位于表B.col_1和表B.col_2之间

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

你能帮我做一个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 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
                );

无论如何谢谢你。很高兴知道未来查询的正确语法。