15 回答

TA貢獻1829條經(jīng)驗 獲得超6個贊
額,翔哥,好久不見,說具體點,我理解的意思大概是用o他指向的就是外面那個,查詢的時候數(shù)據(jù)會不對,但是我搞不明白,你具體講講唄。

TA貢獻1836條經(jīng)驗 獲得超3個贊
@曉菜鳥: 用o的時候挺亂,我也理不清,
1.執(zhí)行from 連接3個表,左連接
2.執(zhí)行where,執(zhí)行子查詢,子查詢where的時候用外面的表.會有什么問題也是十分不清楚.
這個SQL誰寫的?

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

TA貢獻1808條經(jīng)驗 獲得超4個贊
@曉菜鳥:?哦?,我看過去的不同是:里面對外面的 order表限制(加了o)那么外面表符合where UserID=83863 的數(shù)據(jù)才會 進行 in判斷
對里面的 order 表限制 同理就很好理解了

TA貢獻1795條經(jīng)驗 獲得超7個贊
@風醉:?這個我能理解成"自連"嗎?加o就是外面的表order要符合o.UserID=83863 且里面的order表的 TotalPrice>0 這樣理解可以嗎?

TA貢獻1810條經(jīng)驗 獲得超4個贊
@曉菜鳥:?額,經(jīng)測試覺得你的理解是正確的,碰到這種混亂的SQL 我建議 自己寫個測試語句,對比看看一對多,多對多,多對一 的兩個表,在這個查詢得到的結(jié)果集有什么區(qū)別
- 15 回答
- 0 關注
- 556 瀏覽
添加回答
舉報