- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIONで、特定カラムだけ結合前のカラム名を取得)
UNIONで特定カラムだけ結合前のカラム名を取得する方法は?
このQ&Aのポイント
- SQLのUNIONを使用して、特定のカラムだけ結合前のカラム名を取得する方法について教えてください。セレクト1とセレクト2のどちらのカラムから取得されたのかを知りたいです。
- SQL生成方法に問題があるのでしょうか?2回実行して足すべきですか?または、SQL側で足すべきでしょうか?
- 主なテーブルとサブテーブルからLIKE検索を行い、該当するレコードを取得したいです。現在はUNIONを使用して検索結果を表示していますが、どちらのテーブルから取得されたか判断できないため、再考しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
SQL Serverで作業しているものです。 多分、MySQLでも同じと思いますが、 mainとsubを取得するときに固定値を入れたら判断することができます。 質問のSQL文ですと、下のように書いたらできます。 (tablenameという名前の列を追加しています。) SELECT tablename, id, tom, best, center, dragon FROM ( SELECT 'main' tablename, m.id, m.tom, m.best1, m.center, u.dragon FROM main m ←セレクト1 LEFT JOIN usa u ON m.usa_id = u.id UNION ALL SELECT 'sub' tablename, s.red_id, s.red_title, s.best2, s.center, u.dragon FROM sub s ←セレクト2 LEFT JOIN usa u ON s.usa_id = u.id ) as PIYO
お礼
回答ありがとうございました。 「テーブル名」も取得出来るんですね! おかげでうまくいきました。 大変参考になりましたー