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

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

如圖,請教大家這條SQL語句該怎么寫,數據庫是SQL server。

如圖,請教大家這條SQL語句該怎么寫,數據庫是SQL server。

楊魅力 2023-04-08 21:17:00
數據庫表結構如圖,一個文章可以有N個標簽,標簽和標簽之間是樹形結構。問:查詢出所有tag.name='互聯網' and tag.parentid='互聯網'.Id 的 article.title和users.name不知道這個偽代碼有沒有表述清楚,就是說不只要查詢出標簽名稱是‘互聯網’的所有文章標題和用戶名,還要符合‘互聯網’的下一級所有標簽,比如‘移動互聯網’等等。
查看完整描述

2 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

SELECT Title FROM Article WHERE Id IN(SELECT ArticleID FROM Article_Tag WHERE TagID IN(SELECT Id FROM Tag WHERE ParentId IN (SELECT Id FROM Tag WHERE Name = '互聯網'))OR TagID IN (SELECT Id FROM Tag WHERE Name = '互聯網') GROUP BY ArticleID)

對SQL Server不是很熟悉,自己優化成存儲過程吧。不過這個效率太差了,建議變成緩存再查詢。


查看完整回答
反對 回復 2023-04-11
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

或許拆成兩次查詢效率會比較好,第一次得到tag.name='互聯網' and tag.parentid='互聯網'的tag id,第二步再查詢出滿足條件的article和user。寫成一條語句的話,如果系統不做優化,一個個去比較tag.name效率會比較差

查看完整回答
反對 回復 2023-04-11
  • 2 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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