2

テーブルT1があり、2行の新しいテーブルを取得したいと思います。0(T1の1つのコピーの場合)と1(T1の2番目のコピーの場合)を取得する追加の列です。

つまり、T1を、1つのブール列とすべての可能な値を持つ定数テーブルと相互結合したいと思います。

MySQLでこれを行うための最良/最も効率的/より適切な方法は何ですか?

4

2 に答える 2

5

クロスジョインを使用してこれを実行する場合は、次のように実行できます。

select t.*, const.which
from t cross join
     (select 0 as which union all select 1 as which) const

これは、UNIONよりも間違いなく効率的です。UNION ALLよりも効率的かどうかは、データベースエンジンによって異なります。

「t」がサブクエリの場合、サブクエリが複数回評価される可能性がないため、これはより効率的である可能性があります。

于 2012-08-22T14:01:44.023 に答える
2

あなたは組合を意味しますか?

select 0 as newfield, * from yourtable
union all
select 1, * from yourtable
于 2012-08-22T13:51:48.673 に答える