MySQL从多个表插入多个元组
我有两张桌子,emp桌子和dept桌子 以下是emp表的示例MySQL从多个表插入多个元组,mysql,sql,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, A
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=deptno
dname=deptname
预算=每个部门的预算
超过部门所有员工工资总额的20%
managerid=mgrno
我可以将did、dname和managerid插入表中。我面临的唯一问题是预算列,因为我被要求不使用JOIN语句,甚至不使用触发器进行此查询。我仍然是MySQL的初学者,所以请对我放松。下面是一个可以帮助您完成工作的查询
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
您可以使用子查询
插入Dept2
选择D.Deptno,D.Deptname,从Emp中选择SUMsalary*1.20,其中workdept=D.Deptno,D.mgrno
从D部门我没有试过,但我想
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
应该工作为什么不能使用联接?您实际使用的是哪台服务器?mysql和sql server是两个相互竞争的产品,它们相似但不相同different@TZHX我还是MySQL的新手,尽管我已经在互联网上对它做了公平的研究,但我还没走到学习JOIN语句的阶段。很抱歉让人困惑,我正在编辑sql server标记。感谢您的快速回复,但是有没有任何方法可以在没有加入的情况下完成查询?没有加入的情况下,您无法完成查询,除非您在depttable中包含薪资列。如果你这样做,它将打破规范化概念@Kaze Toushin
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