- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの統合コマンドについて)
SQLデータベースの統合方法とは?
このQ&Aのポイント
- phpMyAdminを使用している場合、二つのテーブルを統合する方法としてUNIONを利用することができます。
- ただし、統合する二つのテーブルのカラムの数と型が同じである必要があります。
- 英語のデータベースでは不要なデータが多く、カラムの数が日本語のデータベースの倍以上になっているため、統合する際には注意が必要です。
- みんなの回答 (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すればよいのでは?
お礼
回答ありがとうございます! テーブルを直でくっつける方法しかなさそうですね! そういう感じでやってみます!