sql連線查詢語句中from子句中表的順序有什麼要求

時間 2021-07-13 09:12:52

1樓:

嚴格上來說是沒有要求的,他們有兩種寫法,一種是ansi_sql,一種是trans_sql.

ansi-sql:

select * from table1,table2,table3 where table1.id=table2.id and table3.id = table2.pid

trans-sql:

select * from table1 join table2 on table1.id = table2.id join table3 on table2.

pid = table3.id

也就是說兩種寫法看一下連線條件是在from中還是直接寫在where條件中了!

嚴格意義上來說,連線順序可以隨便寫的。但是兩種還是有差別的。一般要求有順序,但這個順序不是強制要求——而是為了資料庫效率,也就是語句的效能上是有要求的!

在ansi中,一般不作要求,因為資料庫會自動優化語句,在where中的條件,資料庫根據自己的規則和學習在執行時條件順序與你寫時的未必是一樣的。達到了自動優化的目的——但這種優化只是資料庫的自認為,他有可能優化後的語句反倒慢了,這時你需要關閉資料庫優化功能,讓他按你寫的順序執行。而在from中時資料庫不會自己優化,所以此時你應該注意順序。

不管哪一種情況,建議順序都是先生成連線條件結果較少的,也就是說在語句執行結果集時,結果集儘量的小,不要大,所以對於連線時兩個小資料表先連線,然後再是大表連線。但這個順序只是建議——嚴格上卻沒有任何要求。

2樓:匿名使用者

根據業務需求,查詢分清主從表,一般都是用主表連從表。

3樓:太平洋來的風

沒有具體要求,除指明 左 右連線

4樓:是勇敢

子句,從左向右寫即可,如:

select w.* from wc w left join cw c on w.number = c.number;

用sql查詢語句怎麼讓表中id按照順序來

5樓:獨孤的輝煌

這個首先你要寫出你要查詢的內容,如 select name,age from student order by id asc;

asc 代表升序這也是預設的desc代表降序;

6樓:匿名使用者

select row_number() over(order by id asc) as rowno from 表

7樓:匿名使用者

降序:order by [id] desc

升序:order by [id] asc 或 order by [id]

8樓:

語句最後面加

order by id asc(升序)/desc(降序)

sql分段查詢語句怎麼寫,SQL語句中,按時間段間隔查詢怎麼寫?

什麼庫?sqlserver access oracle?access的話 還是在表裡多設定一個欄位讓他自動增減吧!sqlserver的話 select identity int,1,1 rownum,name into temp from 表 select from temp where rownu...

sql語句中,SQL語句中USE

三歲喝酒 use pubs 選擇 名字 pubs 的資料庫 select title id from sales where title id in 查詢欄位title id符合號內限定條件的表sales的 title id 列 select title id from titles where t...

sql語句中能否使用多個,sql語句中能否使用多個union

可以的。union 操作符用於合併兩個或多個 select 語句的結果集。需要注意的是 1 union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。2 這個命令連線的結果集中有重複的值不會被顯示。想忽略重複值,可以使...