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でやるとうまくいきません。よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/05/25 19:03:02
  • 終了:--

回答(2件)

id:hakotantou No.1

hakotantou回答回数4ベストアンサー獲得回数02004/05/25 19:28:22

ポイント10pt

(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;

でいかがでしょうか?

id:amas No.2

amas回答回数12ベストアンサー獲得回数02004/05/25 19:27:47

ポイント60pt

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)

id:chibitomo

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

2004/05/25 19:37:52

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません