• ベストアンサー

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

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

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

  • ベストアンサー
  • mickymac
  • ベストアンサー率37% (90/240)
回答No.2

cとfとが関係ないのであれば、 (SELECT b AS a1 , c AS a2, '' AS a3 FROM A ORDER BY a1) UNION (SELECT b AS a1, '' AS a2, f AS a3 FROM B ORDER BY a1) ORDER BY a1; でいいのかな?

tx_train
質問者

補足

'' AS a2 で良かったんですね. これで,ちょっとスマートなクエリになりました. ありがとうございました.

その他の回答 (1)

  • mickymac
  • ベストアンサー率37% (90/240)
回答No.1

必要なカラムの分だけSELECTしたものを結合するのは だめなんでしょうか? SELECT a1, a2 FROM A WHERE a3 = 'hoge' UNION SELECT b1 AS a1, b2 AS a2 FROM B WHERE b3 = 'hoge'

tx_train
質問者

補足

それが,お互いに持っていないカラムがありまして. A tableには a, b, c, d B tableには b, d, e, f この場合に b, c, fのカラムを取り,bでソートをかけたいというのイメージです.

関連するQ&A