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が利くようにするには
どのようにすべきなのでしょうか?
お忙しい中恐縮ですが、宜しくお願い申し上げます。
お礼
お礼を申し上げるのが遅くなって申し訳ありません。 とても助かりました。おっしゃるように書き換えて作ってみました。 ありがとうございます。