sql連線查詢跟多表查詢的區別

時間 2021-10-14 22:24:14

1樓:匿名使用者

這倆沒區別

就是寫法不同

這個就如同表1裡有a,b倆欄位一樣

select a,b from 表1

select * from 表1

是一樣的

順便給你擴充套件下吧

在資料庫裡還有left join,right join,full join等

當這樣的時候用

select * from table1,table2 where table1.id = table2.id;

這樣類似的查詢就不行了。得用

select * from table1 left join table2 on table1.id = table2.id;這種了

2樓:匿名使用者

這兩條語句結果是等效的,查詢計劃也是等效的其中第一條語句叫做笛卡爾積,省卻了關鍵字cross joinselect * from table1 cross join table2 where table1.id = table2.id;

就這點區別了

3樓:匿名使用者

第一種寫法是sql92標準寫法

第二種寫法是sql99標準寫法 (推薦) 效果是等效的

4樓:shine戚七七

連線查詢包括合併、內連線、外連線和交叉連線,如果涉及多表查詢,瞭解這些連線的特點很重要。

只有真正瞭解它們之間的區別,才能正確使用。

1、union

union 操作符用於合併兩個或多個 select 語句的結果集。

union 運算子通過組合其他兩個結果表(例如 table1 和 table2)並消去表中任何重複行而派生出一個結果表。

當 all 隨 union 一起使用時(即 union all),不消除重複行。兩種情況下,派生表的每一行不是來自 table1 就是來自 table2。

注意:使用union時,兩張表查詢的結果有相同數量的列、列型別相似。

2、inner join(內連線)

inner join(內連線),也成為自然連線

作用:根據兩個或多個表中的列之間的關係,從這些表中查詢資料。

注意: 內連線是從結果中刪除其他被連線表中沒有匹配行的所有行,所以內連線可能會丟失資訊。

重點:內連線,只查匹配行。

3、外連線

與內連線相比,即使沒有匹配行,也會返回一個表的全集。

外連線分為三種:左外連線,右外連線,全外連線。對應sql:

left/right/full outer join。通常我們省略outer 這個關鍵字。寫成:

left/right/full join。

重點:至少有一方保留全集,沒有匹配行用null代替。

1)left outer join,簡稱left join,左外連線(左連線)

結果集保留左表的所有行,但只包含第二個表與第一表匹配的行。第二個表相應的空行被放入null值。

4、cross join(交叉連線)

交叉連線。交叉連線返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉連線也稱作笛卡爾積。

簡單查詢兩張表組合,這是求笛卡兒積,效率最低。

5樓:下天

應該是沒有什麼區別就是寫法的不同

SQL連線查詢,sql 連線查詢跟多表查詢的區別

select a.name,substr max sys connect by path b.definition,2 prize from a,b,select rn,prize id,decode rn,1,0,instr prize,1,rn 1 1 sp,decode instr prize...

關於sql查詢,想從很多表中查詢欄位值

select q.條碼 case when isnull a.a站點,then t else f end 是否經過a站點 case when isnull b.b站點,then t else f end 是否經過b站點 from 條碼錶 q left join a a on a.條碼 q.條碼lef...

asp sql多表查詢的問題

把你的表結構告訴我,這樣的問題應該很容易吧,就是select a.colomn1,a.column2,a.title as titlea,b.title as titleb from a b where order by a.id desc 你覺得這樣可以不?你說的應該是 兩個表中的欄位同名的問題吧...