• ベストアンサー

UNIONと同じことを3.23でできますか

お世話になります。 4.0以降で使われているテーブルをたてに連結する UNION演算子と同じことを MySQL3.23で行う方法をどなたかご存知ないでしょうか? よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数1

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

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

テンポラリに投げ込む方法があります。 単純にやるとこんな感じですね CREATE TEMPORARY TABLE `テンポラリ` SELECT * FROM `テーブルA`; INSERT INTO `テンポラリ` SELECT * FROM `テーブルB`; SELECT * FROM `テンポラリ`; しかし、この場合型がうまくつたわらないので CREATE するときにきちんと型指定をした方が間違いないです。 CREATE TEMPORARY TABLE `テンポラリ`(`ID` INT,`DATA1` VARCHAR(50),`DATA2` VARCHAR(50)); INSERT INTO `テンポラリ` SELECT `ID`,`DATA1`,`DATA2` FROM `テーブルA`; INSERT INTO `テンポラリ` SELECT `ID`,`DATA1`,`DATA2` FROM `テーブルB`; SELECT * FROM `テンポラリ`; なお当然ですが流し込んでから絞込みをするよりは 絞り込んでから流し込み、再度絞り込みをした方が効率的ですね。

gorogoro_01
質問者

お礼

なるほどテンポラリテーブルの活用があったのですね。。 それぞれのテーブルのデータを 一つのテーブルに無理やり詰め込んで管理するしかないかなあ と考えておりました。 この方法だと視認性を犠牲にせずスマートに管理できそうです。 有り難うございます。

関連するQ&A

  • ユニオンクエリーで連結されたテーブルを取得したい

    ユニオンクエリーでいくつかのテーブルを連結しておりますが、このデータを選択した時に どのテーブルのデータを選択しているか、テーブル名を取得したいのですが、何か方法はありますでしょうか? 端的に言いますと、ユニオンクエリーで選択したデータの更新をしたいのです。 お分かりになる方がいらっしゃいましたら、どうぞご教授下さい。お願いします。

  • UNIONについて

    お世話になっております。UNIONについて伺いたいことあり質問させていただきます。(MySQL5.1系) 2つのテーブルがあり、縦に?検索したくUNIONを使ってSQL文を作ってみました。 この検索対象となる2つのテーブルは構成も違えば、カラム名も違うのですが、 SELECT name, address FROM member UNION SELECT c_name, c_address FROM class とこのようにしたら欲していた結果を得ることが出来ました。 そ、ここで質問なのですが、今回、UNIONを使うのは初めてなのですが、色々と調べていると、 UNIONを使うときは、カラム名が同一なものが条件のように書かれているものが多くあり、 多くのサイトのサンプルソースを見てみると、以下のようにカラム名が同一なものばかりと、 そんな印象があるのですが、UNIONを使う場合は、カラム名が同一でないと駄目なのでしょうか? SELECT name, address FROM member UNION SELECT c_name, c_address FROM class また、もう1点伺いたいのですが、UNIONを使い、ORDER BYを場合、以下のように SELECT文ごとにカッコで括るとも調べたのですが、結果は何も変わらない状態になっています。 (SELECT no, name, address FROM member ORDER BY no desc) UNION (SELECT c_no, c_name, c_address FROM class ORDER BY c_no desc) 上記にあるように、テーブル名classのORDER BY c_no descが利くようにするには どのようにすべきなのでしょうか? お忙しい中恐縮ですが、宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • ユニオンクエリの結果をテーブルに書き出したい

    お世話になります。 Access2000で作成しています。 テーブル作成クエリと同じような形で、 ユニオンクエリの結果をテーブルに書き出したいのですが、 どのようにすればできるでしょうか? SQLの形を直接いじるような方法でも結構ですので 宜しくお願い致します。

  • UNIONとUNION ALLの違いについて

    お世話になります。 一応違いについては把握しておりますが、念のため 確認させて下さい。 以下のクエリがあります。 クエリA  受注日   型番  数量の合計  2015/01/01 AAA   10  2015/01/01 BBB   5 クエリB  受注日   型番  数量の合計  2015/01/01 BBB   5  2015/01/01 CCC   10  2015/01/02 CCC   5 クエリA UNION クエリB の場合は、  受注日   型番  数量の合計  2015/01/01 AAA   10  2015/01/01 BBB   5  2015/01/01 CCC   10  2015/01/02 CCC   5 となると思ってます。 ※型番Bの重複がマージされる クエリA UNION ALL クエリB の場合は、  受注日   型番  数量の合計  2015/01/01 AAA   10  2015/01/01 BBB   5  2015/01/01 BBB   3  2015/01/01 CCC   10  2015/01/02 CCC   5 となると思ってます。  ※重複があっても単純にくっつける。 あってますでしょうか? で、例えば、テーブルA及びBにそれぞれ「ライン」という項目があり、 テーブルAの方は、L01、L02となっており、テーブルBの方は LL01、LL02となっていたとしたら(要するにテーブルAのラインと テーブルBのラインが重複することが無い)、UNIONでも UNION ALLでも、どちらでも結果が同じになる・・・という ことであってますでしょうか? ご教示の程、宜しくお願い致します。

  • 構造が異なる二つのテーブルをunionで結ぶには?

    構造が異なる二つのテーブルをUNION(問い合わせの結合)したいのですが, 対応しないカラムの分だけ "length('') as user_id"などとして ダミーカラムを作り,無理やり結合する方法を取っています. もっとスマートに UNIONする方法はないのでしょうか?

    • ベストアンサー
    • MySQL
  • Accessで複数のテーブルを1つのクエリで表示 UNION?

    お世話になります 以前2つのテーブルをひとつにまとめる方法を伝授いただきました下記参考 ■UNIONクエリ select 名前,年 from サンプル1 union all select 名前,年 from サンプル2 http://oshiete1.goo.ne.jp/qa4071630.html しかし2つ以上がうまくいきません 最低5つのテーブルを1つにまとめたいのですが、わかる方ご教授願います

  • UNION ALLしたテーブルを個別に並べ変え

    table1、table2、table3というテーブルがあり このそれぞれをidというカラムで並び替えたものを結合するので考えました。 SELECT * FROM `table1` UNION ALL SELECT * FROM `table2` UNION ALL SELECT * FROM `table3` ORDER BY `id` にすると全てを結合したものを並び替えるので SELECT *, '1' AS tbl FROM `table1` UNION ALL SELECT *, '2' AS tbl FROM `table2` UNION ALL SELECT *, '3' AS tbl FROM `table3` ORDER BY `tbl`,`id` という風に書いてみました、結果としてはよさそうですが 方法としては間違ってないでしょうか? 他にいい方法があればアドバイスをお願いします。

  • テーブルを結合する構文はUNIONやJOINがありますが

    テーブルを結合する構文はUNIONやJOINがありますが この場合クエリー速度は1本のテーブルと複数のテーブルではどの程度 違うのでしょうか? また物理的に複数のテーブルを1つにしたい場合に何かいい方法は ないでしょうか。

    • ベストアンサー
    • MySQL
  • ユニオン圧入と抜け荷重の関係

    お世話になります。 製造業などで、ユニオン圧入する品などがあります。 圧入前にパイプユニオンの抜け荷重をあらかじめ計算できますか? 計算方法(理論値の出し方)ありましたら教えていただきたいです。 よろしくお願いします。

  • ユニオンクエリで開いたクエリは修正することはできないのでしょうか?

    ユニオンクエリで開いたクエリは修正することはできないのでしょうか? 新たにクエリ上で作ったフィールドではなく、元々テーブルにあるフィールドの情報を変更したいのですができません。 これを回避する方法はありますか?(アクセス2003です) よろしくお願い致します。