我有兩個名為Articles和Publishers
在Article表中,有多個列,但有 3 列值得注意:ArticleId、PublishDate和AuthorName。
在Publishers表中,也有多個列,但需要注意的是 2 列:ArticleId和HasPublisher.
例如,如果Article表包含:
ArticleID PublishDate AuthorName
1 9/27/21 John
2 12/13/21 Smith
3 1/3/22. Bob
并且Publisher表格包含
ArticleID HasPublisher
1 Yes
2 No
3 Yes
我必須運行什么查詢來檢查表中有多少行具有Publisher表HasPublisher = yes中相同 IdArticle具有過去日期 X 的 publishDate 列值的列。
因此,在此示例中,如果我們想要滿足日期超過 21 年 9 月 26 日的標準,結果將是 2(第二個表中的 ID = 1 和 Id = 3 是值 HasPublisher = Yes)但是如果我們想要適應標準日期超過 22 年 1 月 1 日,結果將只有 1 個條目 (Id = 3)。
uj5u.com熱心網友回復:
select COUNT(p.*)
from Article a
inner join Publisher p on p.ArticleID = a.ArticleID
where p.HasPublisher = 'Yes' AND a.PublishDate > '2021-09-26'
請注意我如何格式化日期文字。如果您實際上將日期存盤為 9/27/21 格式的 varchar 列,那么您做錯了。架構本身已損壞,您需要修復它。仍然可以使用損壞的模式撰寫此查詢,但固定版本可以利用索引來更快地運行多個數量級,我保證您將來會省去很多心痛。
uj5u.com熱心網友回復:
SELECT COUNT(1) FROM Article art
INNER JOIN Publisher pub
ON art.ArticleID = pub.ArticleID
WHERE PublishDate > '2021-07-26'
AND HasPublisher = 'Yes'
您可以在 ArticleId 列上對兩個表進行內部連接,然后根據 HasPublisher 和 PublishDate 的條件進行過濾。
編輯:更正了日期格式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/431093.html
上一篇:顯示另一行的值
下一篇:sql查詢獲取兩個日期之間的資料
