2017-03-16 7 views
0

SQLクエリで私を助けることができますか?MySql Update where table_A.col_1 table_B.col_1とtable_B.col_2の間

他のテーブルから値を取得したいが、 "join"カラムがこれらの2つのテーブルでまったく同じではないため、内部結合を使用することはできません。代わりに、 "Table_A.clubZipCode BETWEEN Table_B.zip_minとTable_B.zip_max"が成立する場所を確認する必要があります。

は、これは私の研究は、これまでeffordされています。それはライン5 に構文エラーを描きしかし

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 

ありがとうございます!

答えて

0

はあなたのクエリは有効な構文で再書かれている:

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 
       ); 
0

私はあなたが達成したいのか分からないが、一般的にJOINを使用して更新構文は次のようになります。この中にあなたのためにより適したかもしれないサブクエリを使用してThe solution just proposed by @Gab

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; 

EDIT場合。ここで

+0

はとにかくありがとうございます。将来のクエリに適した構文を知っておくとよいでしょう。 –