[英]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.