天天看點

sql聯合查詢語句總結sql聯合查詢語句總結

sql聯合查詢語句總結

首先假設有兩個表,表A和表B

A表中包含(id name sex phone )

B表中包含(ID name adress phone)

内斂查詢:内斂查詢的作用是隻允許生成可以同時比對的的表A和表B的集合,然後交叉形成的的公共部分,注意他們隻有一小部分是重合的;

例句: select *from TableA inner join TableB  on  TableA.Name=TableB.Name 

存在内斂查詢就一定存在外聯查詢;

外聯查詢:外鍊查詢是生成表A和表B的記錄的全集;它包括了兩邊都比對的記錄,如果有一邊沒有比對,那麼這一邊就會生成null字段,如果兩邊都比對了,則不會生成null字段。

例句: Select * from TableA  Full Outer Join TableB on  on  TableA.Name=TableB.Name ;

外聯合又被分為 左外聯合和右外聯合;

左外聯合(Left Join):外聯和主要是生成左邊的也就是表a的所有記錄,但是也包括表b在表a裡面的部分,如果沒有比對成功,則右邊顯示為null;

簡單來說就是以左邊資料為主;

例句: select * from TableA  Left Outer Join TableB  ON TableA.name= TableB.name; (where 條件)

右外聯合(right join) 外聯和主要是生成右邊的也就是表b的所有記錄,但是也包括表a在表b裡面的部分,如果沒有比對成功,則左邊顯示為null;簡單來說是以右邊資料為主;

例句:select * from TableA  right Outer Join TableB  ON TableA.name= TableB.name; (where 條件)

UNION語句用法:

在開發中,有些資料的存儲可能涉及到分庫分表,查詢的時候,可能需要查詢所有的分表,這個時候,就需要用到UNION或者UNION ALL,下面介紹一下UNION的用法以及與UNION ALL的差別:

UNION操作符用于合并兩個或多個SELECT語句的結果集,這裡需要注意的是:UNION内部的SELECT語句必須擁有相同數量的

列,列也必須擁有相似的資料類型,同時,每條SELECT語句中列的順序必須相同。

例句:  SELECT NAME FROM TABLEA

             UNION

             SELECT NAME FROM TABLEB