0

基本的にすべての情報を取得して新しいテーブルにデータを入力するMySQLクエリがありますが、どうすればよいかわかりません:

  1. 新しいテーブルを作成しますが、既に存在する場合は、既存のテーブルを削除して再度作成します
  2. すべてのデータを新しいテーブルに配置します

誰かが私に手を貸してくれるか、正しい方向に向けてくれることを望んでいました。

これが役立つ場合に備えて、既存のSQLを次に示します(PHPファイル内に配置):

SELECT
 * 
FROM (                                                                                                                                                                                                                                                                                                                                                                         
SELECT
    'OverDue' AS ParentNode,
    'Documents ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '2' AS GroupLevel,
    'Red' AS ImageNamePrefix         
FROM 
    documents         
WHERE
    datenextreview BETWEEN '$datefrom' AND '$dateto'

UNION ALL                    
SELECT
    'Documents ' AS ParentNode,
    InternalorExternal & ' ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '3' AS GroupLevel,
    'Red' AS ImageNamePrefix         
FROM
    documents         
WHERE
    datenextreview BETWEEN '$datefrom' AND '$dateto'          
GROUP BY InternalorExternal                     

UNION ALL                    
SELECT
    'OverDue' AS ParentNode,
    'Equipment ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '2' AS GroupLevel,
    'Red' AS ImageNamePrefix         
FROM
    equipment
WHERE
    datenextcalib BETWEEN '$datefrom' AND '$dateto'

UNION ALL                    
SELECT
    'Equipment ' AS ParentNode,
    EqpmtType & ' ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '3' AS GroupLevel,
    'Red' AS ImageNamePrefix         
FROM
    equipment
WHERE
    datenextcalib BETWEEN '$datefrom' AND '$dateto'
GROUP BY EqpmtType

UNION ALL                                                                                                                                                                                                                                                                                                                                                       


SELECT
    'Due' AS ParentNode,
    'Documents ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '2' AS GroupLevel,
    'Yellow' AS ImageNamePrefix         
FROM documents         
WHERE
        datenextreview BETWEEN '$datefrom' AND '$dateto'                 

UNION ALL                    
SELECT
    'Documents ' AS ParentNode,
    InternalorExternal & ' ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '3' AS GroupLevel,
    'Yellow' AS ImageNamePrefix         
FROM documents         
WHERE
    datenextreview BETWEEN '$datefrom' AND '$dateto'          
GROUP BY InternalorExternal

UNION ALL                    
SELECT
    'Due' AS ParentNode,
    'Equipment ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '2' AS GroupLevel,
    'Yellow' AS ImageNamePrefix         
FROM equipment
WHERE
    datenextcalib BETWEEN '$datefrom' AND '$dateto'

UNION ALL                    
SELECT
    'Equipment ' AS ParentNode,
    EqpmtType & ' ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '3' AS GroupLevel,
    'Yellow' AS ImageNamePrefix         
FROM equipment         
WHERE
    datenextcalib BETWEEN '$datefrom' AND '$dateto'        
GROUP BY EqpmtType

UNION ALL                                                                                                                                                                                                                                                                                                                                                       


SELECT
    'Coming Up' AS ParentNode,
    'Documents ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '2' AS GroupLevel,
    'Green' AS ImageNamePrefix
FROM  documents        
WHERE
    datenextreview BETWEEN '$datefrom' AND '$dateto'

UNION ALL                    
SELECT
    'Documents ' AS ParentNode,
    InternalorExternal &  ' ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '3' AS GroupLevel,
    'Green' AS ImageNamePrefix         
FROM documents
WHERE
    datenextreview BETWEEN '$datefrom' AND '$dateto'
GROUP BY InternalorExternal

UNION ALL                    
SELECT
    'Coming Up' AS ParentNode,
    'Equipment ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '2' AS GroupLevel,
    'Green' AS ImageNamePrefix         
FROM  equipment
WHERE
    datenextcalib BETWEEN '$datefrom' AND '$dateto'

UNION ALL                    
SELECT
    'Equipment ' AS ParentNode,
    EqpmtType &   ' ' AS ChildNode,
    COUNT(*) AS NoOfFails,
    '3' AS GroupLevel,
    'Green' AS ImageNamePrefix         
FROM equipment
WHERE
    datenextcalib BETWEEN '$datefrom' AND '$dateto'
GROUP BY EqpmtType
) AS table2              
ORDER BY         
 GroupLevel,
 ChildNode DESC,
 ParentNode DESC

私はフォーマットを使用してみました:

SELECT *
INTO new_table_name
FROM [query]

上記のクエリでは、表示されるだけですInvalid query: Undeclared variable: new_table_name

4

1 に答える 1

2

INSERT INTO...SELECTステートメントを試してください

INSERT INTO newTable (ChildNode, NoOfFails, GroupLevel, ImageNamePrefix)
SELECT ... -- paste your SELECT STATEMENT HERE (the one you posted)

MySQL Doc にSELECT INTOよると、サーバーではサポートされていません。

このINSERT INTO...SELECTについて読む

于 2012-08-10T08:21:58.083 に答える