次の 3 つの MySQL テーブルについて考えてみましょう。
tweets urls tweets_urls
--------------------------- --------------------- ----------------
tweet_id text spam url_id host spam tweet_id url_id
--------------------------- --------------------- ----------------
1 I love cnn.com 0 16 cnn.com 0 1 16
2 fox.com is fuk 0 17 fox.com 1 2 17
3 love me! 0 4 16
4 blah cnn.com 0
5 nice fox.com 0
tweets_urls に従って tweets.spam を更新したいのですが、クエリの出力は次のようになります。
tweets
---------------------------
tweet_id text spam
---------------------------
1 I love cnn.com 0 <-- tweets_urls tells me tweet_id 1 has url_id 16
2 fox.com is fuk 1 in it, and the urls-table tells me that url 16
3 love me! 0 is not spam (spam = 0)
4 blah cnn.com 0
5 nice fox.com 1
私は自分自身を明確にしていることを願っています。私はそれをいじっていて、今このようなものを持っています。正しくないことはわかっていますが、最初からやり直す方法がわかりません。あなたは?
UPDATE tweets SET spam = (
SELECT spam FROM urls
LEFT JOIN tweets_urls
WHERE urls.url_id = tweets_urls.url_id
)
どんな助けでも大歓迎です:-)