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

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

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 兩表連線查詢的問題

可以,下面的sql文你可以參考一下 select a.id,b.type,b.prid idfrom a a inner join c c on a.id c.id left join b b on a.type b.type and b.prid id c.prid id 完全可以實現,使用左外連...

sql查詢多表排序,sql多表分組查詢並排序的問題

select table2.from table2 inner join table1 on table2.table1 id table1.id order by table1.paixu 就像你寫的這樣,直接加過濾條件就可以 但是要在字段前加表名字首以區分兩個表的id欄位 select tabl...

sql語言多表查詢

查詢有不及格成績的學生姓名 select t stud.studname from t stud inner join t select on t stud.studno t select.studno where t select.score 60 查詢有選課的學生姓名 select studna...