2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個贊
OIN分為:內(nèi)連接、相等連接、自然連接、交叉連接,如下:
a、顯式的內(nèi)連接與隱式連接(inner join == join )
顯示連接:SELECT * from employee join department on employee.DepartmentID = department.DepartmentID
等價于:
隱式連接:SELECT * from employee,department WHERE employee.DepartmentID = department.DepartmentID
注:當(dāng)DepartmentID不匹配,就不會往結(jié)果表中生成任何數(shù)據(jù)。
b、相等連接
提供了一種可選的簡短符號去表達(dá)相等連接,它使用 USING 關(guān)鍵字。
SELECT * from employee join department using (DepartmentID)
注:與顯式連接不同在于:DepartmentID只顯示一列
c、自然連接
比相等連接的進(jìn)一步特例化。兩表做自然連接時,兩表中的所有名稱相同的列都將被比較,這是隱式的。
自然連接得到的結(jié)果表中,兩表中名稱相同的列只出現(xiàn)一次.
select * from employee natural join department
注:在 Oracle 里用 JOIN USING 或 NATURAL JOIN 時,如果兩表共有的列的名稱前加上某表名作為前綴,
則會報編譯錯誤: "ORA-25154: column part of USING clause cannot have qualifier"
或 "ORA-25155: column used in NATURAL join cannot have qualifier".
d、交叉連接(又稱笛卡爾連接)
如果 A 和 B 是兩個集合,它們的交叉連接就記為: A × B.
顯示連接:
select * from employee cross join department
等價于
隱式連接:
select * from employee,department
- 2 回答
- 0 關(guān)注
- 281 瀏覽
添加回答
舉報