全く異なるカラムを持つ2つのテーブルがあります。たとえば、次のように彼らの独立したデータ列を維持するが、して結果を注文する共通の値をキャストする単一の結果セットを返す方法があるかどう別個のテーブルと共通フィールドからのMySQL結果
A: B:
+-----+-------+------+ +------+------+-------+-------+
| id | price | name | | key | cost | title | color |
+-----+-------+------+ +-----+-------+-------+-------+
| 123 | 10.00 | Boat | | 456 | 12.00 | Ship | red |
+-----+-------+------+ +-----+-------+-------+-------+
| 124 | 8.00 | Car | | 457 | 5.00 | Truck | blue |
+-----+-------+------+ +-----+-------+-------+-------+
私は思ったんだけど。例えば、コスト/価格で発注:私はJOINをしたくない、とUNIONのための任意の共通の列が存在しないので
[1] key = 456 cost = 12.00 title = Ship color = red
[2] id = 123 price = 10.00 name = Boat
[3] id = 124 price = 8.00 name = Car
[4] key = 457 cost = 5.00 title = Truck color = blue
、このような何かを行うにはとにかくはありますか?
EDIT:
私は私の実際のシナリオでは、テーブルはより多くの列が含まれていることに注意してください。連合では、明示的にそれらの列を互いにマップしなければならないように思えます。列の数を考えると、理想的ではない...
'UNION'では、共通の列名は必要なく、同じ数の列のみが必要です。 'UNION'の半分のカラムエイリアスを使って同じ名前を付けることができますが、そうでない場合でも' UNION'の上半分からカラムの名前で注文できます。 –
@MichaelBerkowski私の実際のシナリオでは、1つのテーブルの方が他のテーブルよりはるかに少ない数のカラムしか持っていません。私はこの矛盾をどのように扱いますか? – HWD
私に「UNION ALL」操作のように見えます。再集合が実際にどのように見えるかははっきりしません。大カッコで囲まれた行番号が必要ですか? 'key ='、 'price =' et al。リテラル?各問合せでは、同じデータ型を使用して同じ数の列を戻すだけです。いずれかのクエリに「欠落」列がある場合は、SELECTにプレースホルダリテラルを追加するだけです。 – spencer7593