MySql的更新,其中table_A.col_1 table_B.col_1和table_B.col_2
问题描述:
之间
你能帮我一个SQL查询?MySql的更新,其中table_A.col_1 table_B.col_1和table_B.col_2
我想从另一个表中的值,但不能使用内部联接,因为“加入”列不正是这两个表中相同。相反,我必须检查,其中“Table_A.clubZipCode之间Table_B.zip_min和Table_B.zip_max”持有的地方。
这是我研究efford至今:
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行 绘制一个语法错误,谢谢!
答
这是您的查询重新写有一个有效的语法:
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
);
答
我不知道你想达到的目标,但一般使用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;
编辑:使用子查询可能更适合The solution just proposed by @Gab您在本案件。
谢谢反正。很高兴知道未来查询的正确语法。 –