Alter 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 (далей «$» не трэба захоўваць у базе дадзеных больш). Цяпер маё пытанне будзе: ці ёсць спосаб абнаўлення запыту-слупок ў чырыканне-табліцы з адным SQL-запыт? Ваша дапамога будзе высока цэніцца, так як я бачу наперадзе шмат працы (з дапамогай PHP, магчыма), калі гэта не магчыма :)

2
@ A'r атрымаў адказ. Ваша схема можа спатрэбіцца трохі дапрацовак, аднак, як вы, здаецца, хочаце, каб захаваць цэлае иш знешні ключ ( companies.id ) у струннай-иш калонцы ( tweets.query ).
дададзена аўтар pilcrow, крыніца

1 адказы

Вы можаце выкарыстоўваць абнаўленне далучыцца. Нешта накшталт гэтага:

UPDATE tweets t
    JOIN companies c ON t.query = CONCAT('$', c.ticker)
SET t.query = c.id;
4
дададзена