使用来自其他MySQL表的数据填充MySQL表

时间:2014-07-30 13:52:13

标签: mysql sql insert union

我想创建一个表,通过SQL查询从其他表填充其数据。例如:

  

使用列创建TABLE1(AVERAGE_ROWS int,AVERAGE_RATING int)

     
    

插入TABLE1值(SELECT COUNT(*)FROM TABLE X,SELECT AVG(rating)FROM TABLE X)

         
      

插入TABLE1值(SELECT COUNT(*)FROM TABLE Y,SELECT AVG(rating)FROM TABLE Y)

    
  

这可能吗?

提前致谢,el retardo。

1 个答案:

答案 0 :(得分:2)

您需要遵循以下格式:

INSERT INTO table2 (column_name(s))
SELECT column_name(s) FROM table1;

所以在你的情况下,它看起来像(SQL Fiddle):

INSERT INTO TABLE1 (AVERAGE_ROWS, AVERAGE_RATING)
SELECT COUNT(*), AVG(rating) FROM X
UNION
SELECT COUNT(*), AVG(rating) FROM Y;

正如您在示例中看到的那样,由于AVG(rating)被声明为AVERAGE_RATING,您将在int上失去主张。您最好使用decimal(,)代替。类似于SQL Fiddle