SQL如何查詢兩個表的數據 在進行查詢操作時,我們通常需要查詢兩個關聯表的數據,我們可以使用where語句進行查詢,如:
select Emp.E_Id,Company.C_OraName from Emp,Company where Companey.C_Id=Emp.C_Id
但是我們往往會碰到比較復雜的語句,這時候使用where就不太合適了,其實SQL可以用較為直接的形式進行連接操作,可以在From子句中以直接的形式指出:
select top 10 E_Id,E_Name,C_Name from Emp join Companey on Companey.C_Id=Emp.C_Id where E_Id not in (select top 20 E_Id from Emp order by E_Id asc) order by E_Id asc//查詢表Emp中第21到第30條數據以升序排列,其中C_Name來自于另一個表
Emp join Companey on Companey.C_Id=Emp.C_Id 就是一個常見的連接:表A join 表B on A.c=B.c
連接大大簡化了SQL語句,也使得SQL語句更直觀易懂附:下面介紹一下SQL連接Sql連接類型有:
| inner join | 內連接 |
| left outer join | 左外連接 |
| right outer join | 右外連接 |
| full outer join | 完全外連接 |
連接關鍵字有:NATURAL,ON,USING舉例說明連接操作的結果:
表X| A | B | C |
| a1 | b1 | c1 |
| a2 | b2 | c2 |
| a3 | b3 | c3 |
表Y| B | C | D |
| b1 | c1 | d1 |
| b2 | c2 | d2 |
| b4 | c4 | d4 |
X natural left outer join Y
| A | B | C | D |
| a1 | b1 | c1 | d1 |
| a2 | b2 | c2 | d2 |
| a3 | b3 | c3 | null |
X left outer join Y on X.B=Y.B and X.C=Y.B
| A | X.B | X.C | Y.B | Y.C | Y.D |
| a1 | b1 | c1 | b1 | c1 | d1 |
| a2 | b2 | c2 | b2 | c2 | d2 |
| a3 | b3 | c3 | null | null | null |
X left outer join Y using(B)| A | B | X.C | Y.C | D |
| a1 | b1 | c1 | c1 | d1 |
| a2 | b2 | c2 | c2 | d2 |
| a3 | b3 | c3 | null | null |