人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLでテーブルA(id,name)とテーブルB(id,uid,account)があり、UPDATEで、テーブルA.id=テーブルB.uidをリンクさせてテーブルB.account=’はてな’と更新させたいのですがうまくできません。MySQLで動くこのSQLクエリーを教えてください。ちなみに、”SELECT テーブルB.account FROM テーブルA INNER JOIN テーブルB ON テーブルA.id =テーブルB.uid WHERE テーブルA.id=1”;で連結はできid=1のものはうまく拾うことができます。しかしこの連結をUPDATEでやるとうまくいきません。よろしくお願いします。

●質問者: chibitomo
●カテゴリ:コンピュータ
✍キーワード:MySQL name ON SELECT SQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● hakotantou
●10ポイント

http://www.mysql.org/

(URLはダミーです。)

UPDATE文のときは、更新対象のテーブルはFROM節の最初に来る必要があるのではないでしょうか?

この質問の場合だと、更新対象がテーブルBなので、”テーブルB INNER JOIN テーブルA”の順に結合します。

UPDATE テーブルB

SET

テーブルB.account = ’はてな’

FROM

テーブルB

INNER JOIN テーブルA ON テーブルA.id = テーブルB.uid

WHERE

テーブルA.id = 1;

でいかがでしょうか?


2 ● amas
●60ポイント

http://dev.mysql.com/doc/mysql/ja/ANY_IN_SOME_subqueries.html

Search Results: ANY_IN_SOME_subqueries.html

サブクエリを使用すればテーブルA.id =テーブルB.uidにあてはまる条件を指定できます。

UPDATE テーブルB set テーブルB.account=’はてな’

WHERE テーブルB.uid in (SELECT テーブルA.id FROM テーブルA)

◎質問者からの返答

ありがとうございました!たすかりました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ