亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

這個SQL不太懂,有沒有大神?。?!

這個SQL不太懂,有沒有大神?。。?/h1>
_朝歌_ 2016-03-15 10:39:18
WITH x? ? ? AS (SELECT #{personId} as userID, #{startDate} as startDate, #{endDate} as endDate from dual)? ? ? SELECT (SELECT COUNT (*) thesisCount? ? ? ? ? FROM KY_ACHIEVETHESIS A? ? ? ? ? ? ? ? JOIN KY_ACHIEVEMENT B ON A.THESISID = B.ACHIEVECONTENTID? ? ? ? ? ? ? ? JOIN KY_ACHIEVEPERSON C? ? ? ? ? ? ? ? ? ON C.ACHIEVEITEMID = B.ACHIEVEITEMID, x? ? ? ? ?WHERE B.ACHIEVETYPE = '論文' AND C.PERSONID = x.userID? ? ? ? ? ? ? ?AND A.STATUS = 0? ? ? ? ? ? ? ?AND (A.publishDate >= x.startDate OR x.startDate IS NULL)? ? ? ? ? ? ? ?AND (A.publishDate <= x.endDate OR x.endDate IS NULL)) LWFROM DUAL
查看完整描述

3 回答

已采納
?
HansonQ

TA貢獻223條經驗 獲得超56個贊

where 是在兩個表join完成后,再附上where條件。

而 and 則是在表連接前過濾A表或B表里面哪些記錄符合連接條件,同時會兼顧是left join還是right join。即?
假如是左連接的話,如果左邊表的某條記錄不符合連接條件,那么它不進行連接,但是仍然留在結果集中(此時右邊部分的連接結果為NULL)。?

建議盡量用where來過濾條件,以避免復雜的邏輯考慮。(除非在某些情況下(后接其他sql語句),用and會報錯,才用and,但要考慮是否影響正確結果。)

查看完整回答
1 反對 回復 2016-03-15
  • _朝歌_
    _朝歌_
    那join on 后面的x,是什么意思呢?
  • HansonQ
    HansonQ
    表名啊。左連接和外連接這個知道的吧
  • HansonQ
    HansonQ
    這個是三個表做關聯的
?
_朝歌_

TA貢獻10條經驗 獲得超3個贊

在toad to oracle 中執行會報ORA-04044: procedure, function, package, or type is not allowed here。

查看完整回答
1 反對 回復 2016-03-15
?
元狼

TA貢獻4條經驗 獲得超1個贊

同問啊,我也不太懂!

查看完整回答
反對 回復 2016-03-15
  • 3 回答
  • 0 關注
  • 2275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號