簡體   English   中英

我正在嘗試將數據從table1填充到table2。我的sql查詢是否正確?

[英]I am trying to populate data from table1 to table2 .Is my sql query correct?

表格1

 EID     EMPLOYEE_NAME       DESIGNATION               REPORTING_MANAGER    FLAG
    1        TIM COOK            CEO                   Null                 Null
    2        MILLER              CTO                   TIM COOK             Null
    3        BRAD                COO                   TIM COOK             Null
    4        WILLIAM             HRD                   TIM COOK             Null
    5        JOHN                TECH MANAGER(DEV)     WILLIAM              Null
    6        WALLACE             TECH MANAGER(TEST)    WILLIAM              Null
    7        SUNDAR              SWIFT DEV             JOHN                 Null
    8        PETER               SWIFT DEV             JOHN                 Null
    9        STEVE               TEST ENGINEER         WALLACE              Null

表2

 EID     EMPLOYEE_NAME      REPORTING_MANAGER_ID

我想生成類似下面的內容

EID     EMPLOYEE_NAME      REPORTING_MANAGER_ID
    1        TIM COOK          Null
    2        MILLER            1
    3        BRAD              1
    4        WILLIAM           1
    5        JOHN              4
    6        WALLACE           4
    7        SUNDAR            5
    8        PETER             5
    9        STEVE             6

我嘗試了以下查詢,它成功運行但不在table2中插入數據。


INSERT INTO table2 (
    E_ID
    ,EMPLOYEE_NAME
    ,REPORTING_MANAGER_ID
    )
SELECT e.E_ID
    ,e.EMPLOYEE_NAME
    ,rm.E_ID AS REPORTING_MANAGER_ID
FROM table1 e
LEFT JOIN table1 rm ON rm.EMPLOYEE_NAME = e.REPORTING_MANAGER
WHERE e.FLAG = NULL

有人幫助我

INSERT INTO table2 (E_ID,EMPLOYEE_NAME,REPORTING_MANAGER_ID) 
 SELECT e.E_ID , e.EMPLOYEE_NAME, rm.E_ID 
 FROM table1 e 
 LEFT JOIN table1 rm ON rm.EMPLOYEE_NAME = e.REPORTING_MANAGER 
 WHERE e.FLAG is NULL

如果將列與null進行比較,則返回null ,這將不會從select語句返回任何行。 使用is null

下面提到的兩個查詢將給出您需要的結果。

- 使用SubQuery

INSERT INTO table2(EID,EMPLOYEE_NAME,REPORTING_MANAGER_ID)SELECT t1.EID t1.Employee_Name,(SELECT EID FROM table1 t2 WHERE t1.EMPLOYEE_NAME = t2.REPORTING_MANAGER)AS REPORTING_MANAGER_ID FROM table1 t1

- 使用加入條件

INSERT INTO table2(EID,EMPLOYEE_NAME,REPORTING_MANAGER_ID)SELECT t1.EID,t1.EMPLOYEE_NAME,t2.REPORTING_MANAGER FROM table1 t1 LEFT OUTER JOIN table1 t2 ON t1.EMPLOYEE_NAME = t2.REPORTING_MANAGER

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM