4

複数のテーブル(同じ列名)を新しいテーブルにコピーするにはどうすればよい<SQL>ですか?

好き:

CREATE TABLE t1
(
   p1 longtext,
   p2 longtext,
   op1 varchar
   op2 varchar,
);


CREATE TABLE t2
(
   p1 longtext,
   p2 longtext,
   op1 varchar
   op2 varchar,
);

CREATE TABLE t3
(
   p1 longtext,
   p2 longtext,
   op1 varchar
   op2 varchar,
);

私が達成したいと思っているのは、上記のすべてのテーブルt1、t2、t3を新しいテーブルnew_tableにコピーしようとすることです。のようなもの:(SQLが間違っています)

CREATE TABLE new_table
  AS (SELECT p1,p2,op1,op2)
      FROM t1,t2,t3);

また、新しいテーブルを作成すると、テーブルt1、t2、t3が同時に更新されるたびに、new_tableも更新されることを期待しています。-これにはトリガーを使用する必要がありますか?

これを解決するのを手伝ってください。

4

3 に答える 3

5

使いたいと思いますVIEW

CREATE VIEW new_Table
AS
SELECT  p1, p2, op1, op2 FROM t1
UNION ALL
SELECT  p1, p2, op1, op2 FROM t2
UNION ALL
SELECT  p1, p2, op1, op2 FROM t3;

いずれかのテーブルが更新されると、ビューに自動的に反映されます。

于 2012-11-24T08:05:35.307 に答える
0

本当にテーブルを作成したい場合、構文はRDBMSに固有です。

たとえば、MSSQLは構文を使用します

SELECT  p1, p2, op1, op2 into MyNewTable FROM t1
UNION ALL
SELECT  p1, p2, op1, op2 FROM t2
UNION ALL
SELECT  p1, p2, op1, op2 FROM t3;

これにより、テーブルが作成され、それがいっぱいになります。既存のテーブルにデータを挿入するために、MSSQLは構文を使用します

INSERT INTO MyNewTable
  SELECT  p1, p2, op1, op2 FROM t1
  UNION ALL
  SELECT  p1, p2, op1, op2 FROM t2
  UNION ALL
  SELECT  p1, p2, op1, op2 FROM t3

これは、使用するRDBMSによっても異なります

于 2012-11-24T08:31:06.487 に答える
0

このクエリを使用できます:

INSERT INTO dbo.NewTable (Column1,Column2,Column3,Column4,Column5)
  SELECT * FROM table1
 UNION ALL
  SELECT * FROM table2
 UNION ALL
  SELECT * FROM table3
UNION ALL
  Select * from table4
 UNION ALL
  Select * from table5
于 2014-01-09T05:49:57.663 に答える