--去重 交集 不忽略空值
select deptno from emp
intersect
select deptno from dept2
---dept2 不在 emp表中的資料
select deptno from dept2
minus
select deptno from emp
select deptno from emp
minus
select deptno from dept2
因為有空值 所以not in 返回0條記錄
改寫為相關子查詢
select *
from dept2 d
left join emp e
on d.deptno = e.deptno
where e.deptno is null
create table t_sal_jj
(empno number,
jj number)
select * from emp
--報錯
select e.ename,e.deptno
from dept2 d,emp e
where d.deptno = e.deptno
left join t_sal_jj jj
on e.empno=jj.empno
--全部改寫為 顯示連線 的
select e.ename,e.deptno,jj
from dept2 d join emp e
on d.deptno = e.deptno
left join t_sal_jj jj
on e.empno=jj.empno
--或者改寫成oracle獨有的外部連線語法
select e.ename,e.deptno,jj
from dept2 d , emp e,t_sal_jj jj
where d.deptno = e.deptno
and e.empno=jj.empno(+)
-----還可以使用標量子查詢
select e.ename,e.deptno,(select jj from t_sal_jj jj where jj.empno=e.empno)as jj
from dept2 d,emp e
where d.deptno = e.deptno
查詢反模式 隨機選擇
隨機數在資料庫中是經常用到的系統。在sql server中查詢隨機數最簡單的方法為 select top1 from person order bynewid 以上sql語句的執行計畫如下 以上這種方法,需要對整個表進行一次排序,而且還無法有效地使用索引。加入我們只需要前幾條資料,那麼好不容易對整個...
mysql連線查詢on MySQL連線查詢例項詳解
建立表suppliers create table suppliers s id int not null auto increment,s name char 50 not null,s city char 50 null,s zip char 10 null,s call char 50 not...
SQL查詢 內連線 外連線 自連線查詢
先建立2個表 學生表和教師表 在每個表中找出符合條件的共有記錄。x inner join y on.第一種寫法 只用where select t.teacher name,s.student name from teacher t,student s where t.id s.teacher id ...