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 你覺得這樣可以不?你說的應該是 兩個表中的欄位同名的問題吧...