2017-07-27 70 views
0

我寫了一個mysql程序。我想要使​​用不同的select語句進入臨時表。雖然在「Mysql程序插入臨時表

SELECT 
    value as last 
FROM 
    wp_13_rg_lead 
    LEFT JOIN wp_13_rg_' at line 18 

創建過程接近其表現語法錯誤下面是我的程序

DELIMITER $$ 

CREATE PROCEDURE TEMP_JOIN_WORK() 

BEGIN 

start transaction; 



    CREATE TEMPORARY TABLE IF NOT EXISTS TEMP_JOIN(firstname varchar(500)  not null,lastname varchar(500) not null) ; 

    insert into TEMP_JOIN(SELECT 
     value 
    FROM 
     wp_13_rg_lead 
     LEFT JOIN wp_13_rg_lead_detail on wp_13_rg_lead.id = wp_13_rg_lead_detail.lead_id 
    WHERE 
     wp_13_rg_lead.form_id = 9 
     AND CAST(wp_13_rg_lead_detail.field_number AS DECIMAL) = CAST(1.3 AS DECIMAL) , 
    SELECT 
     value as lastname 
    FROM 
     wp_13_rg_lead 
     LEFT JOIN wp_13_rg_lead_detail on wp_13_rg_lead.id = wp_13_rg_lead_detail.lead_id 
    WHERE 
     wp_13_rg_lead.form_id = 9 
     AND CAST(wp_13_rg_lead_detail.field_number AS DECIMAL) = CAST(1.6 AS DECIMAL) 

    ); 

    SELECT * FROM TEMP_JOIN; 



    commit; 

    END 

    $$ 

    DELIMITER; 
+0

您的餐桌設計有一些問題。您不必使用兩種不同的查詢以這種方式獲取名和姓。這裏的問題是表中第一個和最後一個名字之間的_relation_不清楚。 –

回答

0

這不應該放棄語法錯誤。在工作臺中,單擊創建存儲過程並在BEGIN END之間複製以下內容。邏輯會起作用或不起作用,這是一個單獨的問題。

CREATE TEMPORARY TABLE IF NOT EXISTS TEMP_JOIN(firstname VARCHAR(500)  NOT NULL,lastname VARCHAR(500) NOT NULL) ; 

    INSERT INTO TEMP_JOIN VALUES((SELECT 
     `value` 
    FROM 
     wp_13_rg_lead 
     LEFT JOIN wp_13_rg_lead_detail ON wp_13_rg_lead.id = wp_13_rg_lead_detail.lead_id 
    WHERE 
     wp_13_rg_lead.form_id = 9 
     AND CAST(wp_13_rg_lead_detail.field_number AS DECIMAL) = CAST(1.3 AS DECIMAL)) , (
    SELECT 
     `value` AS lastname 
    FROM 
     wp_13_rg_lead 
     LEFT JOIN wp_13_rg_lead_detail ON wp_13_rg_lead.id = wp_13_rg_lead_detail.lead_id 
    WHERE 
     wp_13_rg_lead.form_id = 9 
     AND CAST(wp_13_rg_lead_detail.field_number AS DECIMAL) = CAST(1.6 AS DECIMAL)) 

    ); 

    SELECT * FROM TEMP_JOIN;