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