- ベストアンサー
データの追加方法と問題解決 | REPLACEコマンドの挙動と対策
- データの追加方法について解説します。主キーが既に存在している場合には指定したカラム以外の情報がNULLになってしまう問題がありますが、対策方法もご紹介します。
- データの追加方法としてREPLACEコマンドを使用することができます。しかし、指定したカラム以外の内容がNULLに変更されてしまう問題があります。この問題を解決する方法をご紹介します。
- データの追加方法について解説します。主キーが既に存在している場合には指定したカラム以外の情報が変更されてしまう問題があります。この問題を解決するための対策方法をご紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データのサンプルを掲載するなら、文章と合わせてくれないと、逆に分かりにくくなります。 inner join(両方にある)とleft join、right joinの結果をunionでつなげればいいだけでは? 違う意味なら、元の表、得たい結果をしっかり対応付けて補足説明してください。 ※unionでall指定しなければ、重複排除される。 select t1.id,c1,c2,c3 from t1 inner join t2 on t1.id=t2.id union select t1.id,c1,c2,c3 from t1 left join t2 on t1.id=t2.id union select t2.id,c1,c2,c3 from t1 right join t2 on t1.id=t2.id order by 1 ;
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
Colum1のデフォ値はなんでしょうか? NULLならColum1の値を指定せずに強制UPDATEで 問題ないと思いますが。 なおMySQLのバージョンを書いたほうがよりよい 回答が期待できます。
補足
回答ありがとうございます。 MySQLのバージョンは、5.0.17です。 Column1は、NULLの場合もあるし、データが存在することもあります。 行いたい操作をもう少し具体的に説明します。 今、手元に下のようなテーブルがあったとします。 +----+------+ | ID | Colum3 | +----+------+ | 15 | dddd | | 57 | edfd | | 75 | d3es | | 82 | vdsd | | 21 | 4gsc | | 90 | bssd | | 11 | dddd | +----+------+ このテーブルのデータを質問文に書いたようなテーブルに結合させたいと思っています。ただ、right joinやleft join、inner joinを普通に使うと、どちらかのテーブルのIDのみにデータが限定されてしますよね?そうではなくて、Colum1,Colum2,Colum3のどれかにデータが存在するものすべてを結合したテーブルを作成したいのです。 結合では、うまくできなかったので、一つずつレコードを追加していけば良いと考えたのですが、うまくできずに、今回の質問内容となりました。
お礼
質問が悪かったみたいで申し訳ありません。 おかげさまで、希望の結果を得ることができました。 ありがとうございます。