MySQL从多个表中插入多个元组

时间:2015-03-27 17:18:06

标签: mysql sql

我有两个表是 emp 表和 dept 表。

以下是emp表的示例。

empno, firstname, lastname, workdept, salary
000010, Christine, Haas, A00, 312750.00
000020, Michael, Thompson, B01, 161250.00

这是dept表的样本。

deptno, deptname, mgrno, admrdept
A00, Spiffy Computer Service DIV., 000010, A00
B01, Planning, 000020, A00

我想将这两个表中的信息插入一个名为 dept2 的新表中,其中包含以下列:

did, dname, budget, managerid
  • did = deptno
  • dname = deptname
  • 预算=每个部门的预算为 比部门所有员工的总薪水高20%
  • managerid = mgrno

将did,dname和managerid插入表中没有问题。我面临的唯一问题是预算列,因为我不需要使用JOIN语句甚至触发此查询。我还是MySQL的初学者,所以对我很轻松。

3 个答案:

答案 0 :(得分:0)

以下是完成工作的查询

INSERT INTO dept2
SELECT D.deptno,D.deptname,E.salary+((E.salary*20)/100),D.mgrno
FROM emptable E
JOIN depttable D ON E.workdept=D.deptno

答案 1 :(得分:0)

您可以使用子查询

INSERT INTO Dept2 SELECT D.Deptno,D.Deptname, (SELECT SUM(salary)*1.20 FROM Emp WHERE workdept=D.deptno),D.mgrno FROM Dept D

答案 2 :(得分:0)

我没试过,但我认为

INSERT INTO Dept2 (did, dname, budget, managerid)
SELECT D.Deptno,D.Deptname, SUM(E.salary)*1.20,D.mgrno  
FROM Dept D, Emp E
WHERE E.workdept=D.deptno
Group by d.deptno, d.deptname,d.mgrno

应该有效