SQL查询以显示父表';s记录后跟其所有子表';s记录
我需要编写一条SQL语句,使用EMP和DEPT表显示以下输出 输出:SQL查询以显示父表';s记录后跟其所有子表';s记录,sql,oracle,join,Sql,Oracle,Join,我需要编写一条SQL语句,使用EMP和DEPT表显示以下输出 输出: DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK EMPNO ENAME ---------- ---------- 7782 CLARK 7839 KING 7934 MILLER 20 RESEARCH
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
EMPNO ENAME
---------- ----------
7782 CLARK
7839 KING
7934 MILLER
20 RESEARCH DALLAS
EMPNO ENAME
---------- ----------
7369 SMITH
7566 JONES
7788 SCOTT
7876 ADAMS
7902 FORD
30 SALES CHICAGO
EMPNO ENAME
---------- ----------
7499 ALLEN
7521 WARD
7654 MARTIN
7698 BLAKE
7844 TURNER
7900 JAMES
6 rows selected.
40 OPERATIONS BOSTON
no rows selected
因此,我需要一个查询的特定输出,其中首先显示部门信息,然后显示子表中的所有相应记录。在我看来,这项任务并不像看上去那么简单。好的,我的SQL*Plus功能可能没有以前/应该的那么好。主要的问题是如何使EMP表的标题在每个部门重复(不,我不知道怎么做) 我设法得出的最接近的结果是:
SQL> col deptno format 999999
SQL> col dname format a10
SQL> col loc format a10
SQL> set linesize 30
SQL> set recsep off
SQL> break on deptno on dname on loc
SQL>
SQL> select d.deptno, d.dname, d.loc, e.empno, e.ename
2 from dept d left join emp e on e.deptno = d.deptno
3 order by d.deptno;
DEPTNO DNAME LOC
------- ---------- ----------
EMPNO ENAME
---------- ----------
10 ACCOUNTING NEW YORK
7839 KING
7782 CLARK
7934 MILLER
20 RESEARCH DALLAS
7902 FORD
7369 SMITH
7566 JONES
30 SALES CHICAGO
7900 JAMES
7844 TURNER
7654 MARTIN
7521 WARD
7499 ALLEN
7698 BLAKE
40 OPERATIONS BOSTON
13 rows selected.
一旦您、Enferno(或任何其他人)能够准确地获得所要求的内容,我真的很想看到最终代码。建议您,无需声明这是家庭作业。如果省略这些信息,你可能会得到更好的回复。@davidele-诚实至少让人耳目一新。恩费诺-你的作业的目的是让你学习它背后的技巧,这样当你碰到另一个例子时,你就可以应用那些学到的技巧。在编码论坛上要求“为我做作业”永远都不会成功。这是你学习的机会。你试过什么吗???如果是,则发布您的查询。如果没有,就开始工作。如果你太懒了,那就放弃这门课程,忘记数据库中的职业生涯吧。我已经尝试了多次查询,我不是在偷懒。但是我尝试过的查询并没有给出这个确切的结果。(我使用了join和groupby)