第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Sql Server 表別名的問題,在線等答案,急急急,求知道的大神解答一下

Sql Server 表別名的問題,在線等答案,急急急,求知道的大神解答一下

qq_遁去的一_1 2018-12-07 02:38:09
直接上代碼吧,兩段sql,sql語句的有些where條件被我刪除掉了,不然解釋起來太麻煩。 問題就是:注意兩段sql綠色的部分,用這個 o 和不用?o?的不用點在哪里?查詢結(jié)果不一樣又是為什么?能講解一下原理最好,謝謝大家! 一:子查詢里面使用 o.UserID,查詢結(jié)果只有一條. select o.id Id, c.name CompanyName , u.phone Phone , o.TotalPrice TotalPrice from [order] o left join [dbo].[CompanyInfo] c on o.userid=c.id left join [dbo].[user] u on o.userid=u.id where o.[ID] in ( select top (10) id from ( select id,ROW_NUMBER() over(order by id desc) r from [order] where o.UserID=83863 and TotalPrice>0 ) t where t.r> (0)) ? 二:子查詢里面直接使用 UserID,查詢結(jié)果不止10條 select o.id Id, c.name CompanyName , u.phone Phone , o.TotalPrice TotalPrice from [order] o left join [dbo].[CompanyInfo] c on o.userid=c.id left join [dbo].[user] u on o.userid=u.id where o.[ID] in ( select top (10) id from ( select id,ROW_NUMBER() over(order by id desc) r from [order] where UserID=83863 and TotalPrice>0 ) t where t.r> (0))
查看完整描述

15 回答

?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

不能用o,

查看完整回答
反對 回復 2019-01-07
?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

額,翔哥,好久不見,說具體點,我理解的意思大概是用o他指向的就是外面那個,查詢的時候數(shù)據(jù)會不對,但是我搞不明白,你具體講講唄。

查看完整回答
反對 回復 2019-01-07
?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

@吳瑞祥

翔哥,人呢?吃飯去了?

查看完整回答
反對 回復 2019-01-07
?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

@曉菜鳥: 用o的時候挺亂,我也理不清,

1.執(zhí)行from 連接3個表,左連接

2.執(zhí)行where,執(zhí)行子查詢,子查詢where的時候用外面的表.會有什么問題也是十分不清楚.

這個SQL誰寫的?

查看完整回答
反對 回復 2019-01-07
?
繁華開滿天機

TA貢獻1816條經(jīng)驗 獲得超4個贊

@吳瑞祥: 一個同事寫的,你也認識,接手你發(fā)短信的那個。用o的時候查詢比較慢,而且數(shù)據(jù)不對。

查看完整回答
反對 回復 2019-01-07
?
開滿天機

TA貢獻1786條經(jīng)驗 獲得超13個贊

@曉菜鳥: 這個子查詢感覺上沒任何必要......純粹浪費性能的..

話說發(fā)短信那個東西還在維護?我以為我一走那就沒人用了

查看完整回答
反對 回復 2019-01-07
?
MM們

TA貢獻1886條經(jīng)驗 獲得超2個贊

@吳瑞祥: 嗯,是的,我就是為了弄清楚他們的區(qū)別,這個sql我已經(jīng)優(yōu)化了,發(fā)上來你看一下,短信那個沒刪,目前短信通道還算可以,所以也沒怎么維護.

WITH orderdetail AS
(
    select o.id Id,c.name CompanyName ,u.phone Phone o.TotalPrice TotalPrice ,ROW_NUMBER() OVER(order by o.[ID] desc) rownum from [Order] o
    left join [CompanyInfo] c on o.UserID=c.ID
    left join [User] u on o.UserID=u.ID
    where u.ID=83863 and o.TotalPrice>0
)
select * from orderdetail where rownum between 1 and 30
查看完整回答
反對 回復 2019-01-07
?
慕尼黑8549860

TA貢獻1818條經(jīng)驗 獲得超11個贊

@曉菜鳥: 嗯,這樣寫多好啊,把服務器升級成2012吧。有分頁語句可以直接用啦。

不用寫這么麻煩的分頁了

查看完整回答
反對 回復 2019-01-07
?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

用了O是對外面的order做限制? 不用才是里面的查詢條件限制

查看完整回答
反對 回復 2019-01-07
?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

我想知道他們在查詢的時候會產(chǎn)生什么不同,原理是什么,您能詳細講解一下嗎?

查看完整回答
反對 回復 2019-01-07
?
炎炎設計

TA貢獻1808條經(jīng)驗 獲得超4個贊

@曉菜鳥:?哦?,我看過去的不同是:里面對外面的 order表限制(加了o)那么外面表符合where UserID=83863 的數(shù)據(jù)才會 進行 in判斷

對里面的 order 表限制 同理就很好理解了

查看完整回答
反對 回復 2019-01-07
?
一只萌萌小番薯

TA貢獻1795條經(jīng)驗 獲得超7個贊

@風醉:?這個我能理解成"自連"嗎?加o就是外面的表order要符合o.UserID=83863 且里面的order表的 TotalPrice>0 這樣理解可以嗎?

查看完整回答
反對 回復 2019-01-07
?
慕萊塢森

TA貢獻1810條經(jīng)驗 獲得超4個贊

@曉菜鳥:?額,經(jīng)測試覺得你的理解是正確的,碰到這種混亂的SQL 我建議 自己寫個測試語句,對比看看一對多,多對多,多對一 的兩個表,在這個查詢得到的結(jié)果集有什么區(qū)別

查看完整回答
反對 回復 2019-01-07
  • 15 回答
  • 0 關注
  • 556 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號