phpMyAdminを使ってます。一つのデータベースに入ってる二つのテーブルを統合するため、機能でいうとFULL OUTER的なのがやりたいのですがphpMyAdminがそれをサポートしていないので、代わりにUNIONを使ってやろうと思ったら、二つのテーブルのカラムの数と型が同じでないとできないらしく、そこで止まってしまってるのですが、どうにかできるコードはないでしょうか?
もともとは日本語のデータベース(1)と英語のデータベース(2)で分けていたのですが、英語(2)では入れなくてもいいデータがたくさんあり、カラムの数が2倍くらい変わってしまっているので、今から英語(2)の方を無理矢理日本語(1)に合わせるとなるとなんかデータが変になりそうなのでそれはまだやってないんですが。←無理矢理合わせるのはどうにも方法がなくて最終手段としてやりたいです。
回答よろしくおねがいします。
何か抜けている点があったら言ってください!
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すればよいのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- 大学受験 3浪しようと思うので、アドバイスお願いします。 自分としては結構メンタルきつくて後期でいいから、東京 3 2023/02/13 21:47
- 大学受験 高3です。 武田塾に今月入塾しました。 通信制高校で偏差値は30です。偏差値と言っても最低ランクで学 9 2022/09/20 17:53
- 留学・ワーキングホリデー リスニング力、はつきますか?6カ月語学学校行き数年間お金を稼いでまた、6カ月間語学留学に行くのは? 1 2023/02/11 15:49
- 英語 なんで道を尋ねる外国人(中国人と韓国人など)は「英語」で話してくるのでしょうか? 別に英語圏ではない 5 2023/03/02 00:39
- 英語 うちら高校や中学で英語をやりますが、とくに英表・論表だと、めちゃくちゃ理屈じゃないすかwなんだ+って 4 2023/07/09 20:55
- TOEFL・TOEIC・英語検定 英会話の習得 4 2022/06/05 10:23
- 大学受験 国立受験 11月からの大逆転劇を起こすには 7 2022/11/14 19:24
- 大学受験 数学が苦手で社会が得意な場合は一橋よりも東大の方が受かりやすい、ということはあり得ますか? 3 2022/04/16 16:46
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルリンク リンク元を知...
-
外部キーだけのテーブル(主キ...
-
L2SWはARPテーブルを持っている?
-
件数の多い順にselect
-
MySQLで複数テーブルを作成する
-
会社の飲み会の幹事になり、座...
-
面接のときテーブルが正面に。...
-
クエリを教えてください select...
-
一致するデータのみ削除したい
-
オフ会の席替えについて(8人...
-
更新されたテーブルを表示したい
-
複数テーブルにわたるCOUNT
-
【PHP】SQL文のSUM関数で出力し...
-
男性と2人で飲食店に行きテーブ...
-
テーブルデータのエクスポート...
-
リンクしているテーブルの上書き
-
お金持ちのテーブル
-
ACCESS での LEFT JOIN 時の WH...
-
Accessデータベースウインドウ...
-
このテーブルで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
テーブルリンク リンク元を知...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
複数テーブルにわたるCOUNT
-
男性と2人で飲食店に行きテーブ...
-
「テーブルに座って……」という...
-
複雑なSQL文について
-
まるいテーブル 円い 丸い 漢字...
-
お金持ちのテーブル
-
【PHP】SQL文のSUM関数で出力し...
-
論理名とコメント構文(?)について
-
1つのテーブルに同じデータを参...
-
1対1のリレーション(主キー同...
-
MySQLで複数テーブルを作成する
-
テーブルの白く剥がれてるところに
-
オーダーの覚え方について
-
このテーブルで
おすすめ情報