表題の件です。
最初の投稿ではミスが多数あり、本当に申し訳ございません。
修正させていただきます。
UPDATE TEAM
SQL
1SET NAME1 = a.TEAMNAME 2FROM TEAM 3INNER JOIN MASTER a 4 ON TEAM.NAME1 = a.ID
SQL
1UPDATE TEAM 2SET NAME2 = b.TEAMNAME 3FROM TEAM 4INNER JOIN MASTER b 5 ON TEAM.NAME2 = b.ID
はそれぞれ実行できますが、
SQL
1UPDATE TEAM 2SET NAME1 = a.TEAMNAME, NAME2 = b.TEAMNAME 3FROM TEAM 4INNER JOIN MASTER a 5on TEAM.NAME1 = a.ID 6INNER JOIN MASTER b 7on TEAM.NAME2 = b.ID
は0件実行しました、と表示されます。
エラーではないのですが、更新されません。
更新先のテーブルTEAMの2つのフィールドの値を元に、
MASTERのTEAMNAMEフィールドをそれぞれ呼び出し更新したいのです。
できるだけ実行回数を減らしたく思っているのですが、
まとめることはできないでしょうか?
素直に2回に分けるべきでしょうか。
どうぞよろしくお願いいたします。
INNERJOIN
↓
INNER JOIN
コードは https://teratail.com/help/question-tips#questionTips3-7 の [コード] に修正してください。
質問にテーブル定義としてCREATE TABLE文と、現行のテーブル中のデータとしてINSERT文と、希望されるUPDATEの実行結果を https://teratail.com/help/question-tips#questionTips3-7 の [コード] で追記してください。
単独の1個目と2個目は同じ結果になると思いますが、それを纏める理由は何ですか?
多々修正点があり申し訳ございません。
対応次第、ご連絡させていただきます。
> sazi様
申し訳ございません、コードにミスがありました。
修正させていただきます。
取り急ぎ、1件目と2件目の修正をさせていただきました。
本来名称が入るべきところ(NAME)にIDが入ってしまっているので補正したいという事ですか?
from 句を使用するならそれぞれのテーブルのプライマリーキーを明示して下さい。
(少なくともTEAMは必要)
>sazi様
ご認識の通りです。
プライマリーキーはどちらもNoというフィールドがあり、そちらを使用しています。
知識不足で申し訳ございません、このクエリにはプライマリーキーの使用が必要でしたでしょうか。
from句で複数のテーブルを指定した場合、update対象のテーブルと結びつけなければなりませんので一意キーの情報が必要です。
それから、結合条件(NAME)を更新するようなクエリーなら、補正用途しか考えられませんが、どうなのですか?(認識通りというのが答え?)
1ヶ所しか直していない。涙
回答2件
あなたの回答
tips
プレビュー