0

私は MySQL で 3 つのテーブルを使用しています。1 つは会社 A (18,000 レコード)、もう 1 つは会社 B (145,000 レコード)、もう 1 つは会社 C (8,000 レコード) のものです。各テーブルには一意のデータがありますが、フィールド名はまったく同じです。3 つのテーブルすべてを結合してデータを積み重ねる必要があるため、データが結合され、1 つのテーブルに合計 8+18+145= 171,000 レコードが存在することになります。誰でも SQL クエリを手伝ってもらえますか?

4

2 に答える 2

1
SELECT t1.a, t1.b, 'Company A'
  FROM table1 t1
UNION ALL
SELECT t2.a, t2.b, 'Company B'
  FROM table2 t2
UNIONALL
SELECT t3.a, t3.b, 'Company C'
  FROM table3 t3
于 2013-07-01T14:55:53.937 に答える
0

これはunion allクエリと呼ばれます。

select t.*
from ((select 'A' as which, A.* from A) union all
      (select 'B' as which, B.* from B) union all
      (select 'C' as which, C.* from C)
     ) t

これは、フィールド名が同じ順序であり、互換性のある型を持っていることを前提としています。各サブクエリですべてのフィールド名を個別にリストすることをお勧めします。

于 2013-07-01T14:56:46.547 に答える