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語句的where查詢語句中 select userid

這裡的 是引數佔位符,表示在執行查詢時用傳入的引數替換該內容在你的例子中,pstmt.setstring 1,userid 將應用得到的引數userid傳給第一個引數,pstmt.setstring 2,password 將應用得到的引數password傳給第二個引數 小白九久玩科技 where u...

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語句中as的意思是什麼,SQL語句中AS是什麼意思?

冼染周冬 as一般用在兩個地方,一個是query的時候,用來重新指定返回的column 名字如 一個table 有個column叫 id,我們的query是 select idfrom table1.但是如果你不想叫id了,就可以重新命名,如叫systemid 就可以這樣寫 select idas ...