私が知る限り、ユニオンを使用せずに提案したように MySQL の結果セットを取得することは不可能です。
この質問は、実際のプログラミングの問題というよりも、パズル (宿題) のように読めます。なぜ UNION が利用できないのでしょうか? PHPMyAdmin や mysql コマンド ライン クライアントなどの一般的なツールから直接データにアクセスできるようにしたいのはなぜですか? プレゼンテーションやアクセス制御などを実装する最上位のコード層を取得したら、UNION を使用せずに実行するのは簡単ですが、おそらく UNION ステートメントを使用するとはるかに簡単になります。
UPDATEUNION
を使用しないという問題の解決策がありますが、これは宿題/面接の質問であることを明らかにしています。
更新 2 LearneRがUNION クエリのパフォーマンスに満足していないことを示唆する
別の質問を投稿 (その後削除)したため、これが宿題や面接の質問になる可能性は低くなります。しかし、エンターテインメントの価値のために、他の誰かがパズルを解くことができるかどうかを確認するために、後でソリューションを投稿するのを延期します (ヒント: 私のソリューションは、クエリのパフォーマンスをまったく改善しないはずです。取得しようとする単なる学術的な演習です) UNION を使用せずに目的の結果を得る)。
更新3
誰もそれを手に入れませんでしたか?
SELECT t.id
, IF(rowmultiplier.id=1, t.opendate, t.closedate) AS `date`
, IF(rowmultiplier.id=1, 'Open', 'Close') AS `type`
FROM yourtable t
, (SELECT id
FROM yourtable AS tablealias
WHERE id IN (1,2) ) AS rowmultiplier
WHERE rowmultiplier.id=1
OR t.closedate IS NOT NULL;
(ソート/フィルタリングがない場合は、これを調整する範囲があり、外側のクエリの完全なテーブル スキャンと内側のクエリのインデックス ルックアップを強制すると、ユニオン クエリよりもはるかに高速になります)。