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








 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM