简体   繁体   English

MySQL从复杂选择直接插入

[英]mysql direct insert from complex select

I have this MySQL SELECT: 我有这个MySQL SELECT:

SELECT t.*,
 sum(HOUR(TIMEDIFF(STR_TO_DATE(Arbeitsbeginn, '%d.%m.%Y %H:%i:%s'),
 STR_TO_DATE(Arbeitsende, '%d.%m.%Y %H:%i:%s')))) AS ARBEITSZEIT,
sum(HOUR(TIMEDIFF(STR_TO_DATE(Projektbeginn, '%d.%m.%Y %H:%i:%s'),
STR_TO_DATE(Projektende, '%d.%m.%Y %H:%i:%s')))) AS Projektzeit

FROM (SELECT DriverName,
         Baustelle,
         Arbeitsbeginn,
         Arbeitsende,
        Projektbeginn,
        Projektende
  FROM (SELECT DRIVERNAME,
               GROUP_CONCAT(IF(ACTIONTEXT = 'PB', AREA, NULL)) AS 'Baustelle',
               GROUP_CONCAT(IF(ACTIONTEXT = 'Arbeitsbeginn', DATETIME, NULL)) AS 'Arbeitsbeginn',
               GROUP_CONCAT(IF(ACTIONTEXT = 'Arbeitsende', DATETIME, NULL)) AS 'Arbeitsende',
               GROUP_CONCAT(IF(ACTIONTEXT = 'PB', DATETIME, NULL)) AS 'Projektbeginn',
               GROUP_CONCAT(IF(ACTIONTEXT = 'PE', DATETIME, NULL)) AS 'Projektende'
        FROM geoImportRoot
        GROUP BY DRIVERNAME
       ) A CROSS JOIN
       (SELECT 1 AS n UNION ALL SELECT 2) n
) t
GROUP BY DriverName;

Is it possible to get this inserted directly into a new table? 是否可以将其直接插入到新表中?

To create a new table from a select statement you could use: 要从select语句创建表,可以使用:

CREATE TABLE .... SELECT

It is basically a CREATE TABLE statement with a SELECT statement appended. 它基本上是一个CREATE TABLE语句,并附加了SELECT语句。


If you wish to insert the SELECT result in an existing table, use instead the INSERT ... SELECT statement. 如果希望将SELECT结果插入现有表中,请改用INSERT ... SELECT语句。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM