oracle 多表查詢

2021-10-01 13:18:37 字數 1214 閱讀 7234

!!!查詢時要注意笛卡爾積:新增合適的條件

!!!查詢時要注意資料重複:用distinct

!!!查詢時要注意別名的使用:給列設定別名要用as,給表設定別名不需用as。給表設定別名後,查詢語句中只能使用別名不能使用原表名

各類連線查詢方式:

select table1.

column

, table2.

column

from table1

[,table2 where table1.column_name = table2.column_name]

--簡單的自連線

[,table2 where table1.column_name between table2.low and table2.heigh]

--連線查詢也可實現非等值查詢

[cross

join table2]

|--可得到兩表的笛卡爾積

[natural

join table2]

|--自然連線,自動以兩表中的同名列為條件建立等值連線

[join table2 using

(column_name)]|

--以特定列為條件建立等值連線的自然連線,列名前不能寫表名字首

[inner

join table2 on

(table1.column_name = table2.column_name)]|

--內連線,常用

[left

|right

|full

outer

join table2 on

(table1.column_name = table2.column_name)

]--左/右/全外連線

舉例:在dyaq表中查詢qlrmc='小明『的所有資料。但dyaq表中無qlrmc欄位,有bdcdyh欄位。qlr表中有qlrmc欄位和bdcdyh欄位。

select

distinct s.

*from dyaq s inner

join

(select

*from qlr where qlrmc='小明』) t on s.bdcdyh=t.bdcdyh

參考:

Oracle 多表查詢

sql 外連線 sql 按部門統計員工人數 部門號 部門名稱 人數 sql select d.deptno,d.dname,count e.empno 2 from dept d,emp e 3 where d.deptno e.deptno 4 group by d.deptno,d.dname ...

Oracle 多表查詢

等值和不等值連線查詢 為了避免笛卡爾集,可以在 where 加入有效的連線條件。oracle 連線多表查詢 在 where 子句中寫入連線條件。在表中有相同列時,在列名之前加上表名字首 select table1.column,table2.column from table1,table2 whe...

oracle 多表查詢

多表查詢 多表查詢,又稱表聯合查詢,即一條sql語句涉及到的表有多張,資料通過特定的連線進行聯合顯示.笛卡爾積 在數學中,兩個集合x和y的笛卡尓積 cartesian product 又稱直積,表示為x y.假設集合a 集合b 則兩個集合的笛卡爾積為。在資料庫中,如果直接查詢倆張表,那麼其查詢結果就...