• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの統合コマンドについて)

SQLデータベースの統合方法とは?

このQ&Aのポイント
  • phpMyAdminを使用している場合、二つのテーブルを統合する方法としてUNIONを利用することができます。
  • ただし、統合する二つのテーブルのカラムの数と型が同じである必要があります。
  • 英語のデータベースでは不要なデータが多く、カラムの数が日本語のデータベースの倍以上になっているため、統合する際には注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

基本的にMySQLではFULL OUTER JOINはできませんが、 今回の命題ではそもそもJOINじゃなくてテーブルの統合ですよね? であればどちらかのテーブルにもう片方を流し込むか、あらたなテーブルをつくって 両方流し込むのが妥当では? とりあえず統合するキーになるカラムがprimaryもしくはunique属性で処理されている 前提で解説します。 例示のものだとテーブル1(データベースじゃないですよね?)にテーブル2を 流し込みたいと読めるので INSERT IGNORE INTO テーブル1(カラム1,カラム2,・・・・) SELECT カラム1相当のカラム,カラム2相当のカラム,・・・・ FROM テーブル2; ※テーブル2に該当するカラムがないならNULLを指定する とすれば既にテーブル1にあるテーブル2のデータは無視され、テーブル1にないものだけ あらたに挿入されます。 逆にテーブル1に競合データがあってもテーブル2で上書きするなら INSERT ON DUPLICATE KEY UPDATE構文が有効かもしれません。 新規でテーブルをつくるのであれば、CREATE TABLEするさいに有効なユニーク属性を 設定したうえで、テーブル1、テーブル2の順番で流し込めばいいでしょう また無理やりFULL OUTER JOINするなら、キーになる絡むだけUNIONして サブクエリを作っておくかVIEWを用意しておき、そこにテーブル1とテーブル2を LEFT JOINすればよいのでは?

soccerrlove
質問者

お礼

回答ありがとうございます! テーブルを直でくっつける方法しかなさそうですね! そういう感じでやってみます!

関連するQ&A