2011-10-28 6 views
2

は、以下の2つのMySQLテーブルを考えてみましょう:アルターMySQLのテーブルの列には、

companies 
----------------------- 
id ticker 
1 AA 
2 AAPL 
3 ABT 
4 AEP 

tweets 
----------------------- 
tweet_id query (etc...) 
1  $AA 
2  $AA 
3  $AAPL 
4  $ABT 
5  $AA 
6  $AEP 
7  $AEP 

テーブル「企業」は、様々な銘柄のための700以上のティッカーシンボルが含まれています。テーブル「つぶやき」には数百万のつぶやきが含まれています。これらのつぶやきは、 "$"が付いた各ティッカーについてTwitter.comに照会することによって収集されました。これは、特定の株式について話すときにTwitterのコンベンションであるためです。次のように私は今、つぶやきテーブルを正規化したいと思います:

tweets 
----------------------- 
tweet_id query (etc...) 
1  1 
2  1 
3  2 
4  3 
5  1 
6  4 
7  4 

はだから今、tweet_id 1とのつぶやきがAAであること、IDが1のティッカーを照会することにより得られた(「$」は記憶する必要はありませんこれ以上データベースにはありません)。今私の質問は:1つのSQLクエリとつぶやきテーブルのクエリ列を更新する方法はありますか?これが不可能な場合は、おそらくPHPを使用して、多くの作業が先読みされているので、あなたの助けには大いに感謝します:)

+0

@ a'rが回答を得ました。しかし、整数型の外部キー( 'companies.id')をstring-ishカラム(' tweets.query')に格納したいと思うので、あなたのスキーマはちょっとした作業が必要かもしれません。 – pilcrow

答えて

4

更新結合を使用できます。このようなもの:

UPDATE tweets t 
    JOIN companies c ON t.query = CONCAT('$', c.ticker) 
SET t.query = c.id; 
関連する問題