我有兩個表。根據表連接結果排除查詢中的記錄
視頻; ID, 藝術家, 標題
runlog; VideoID,'加入videos.ID datetime
我想在視頻表上運行查詢,不包括記錄在三個條件。 (作爲例子。我有多個條件,但如果我得到這些幫助,我也許可以弄清楚一切了。
- 任何視頻,顯示了在Runlog在過去一小時內將不會在結果中顯示
- 任何在過去一小時內有在運行日誌中顯示的視頻的藝術家將不會有任何其他相同藝術家的記錄在查詢中完全顯示
- 任何藝術家的視頻已顯示在runlog三次在過去24小時內沒有任何其他記錄由同一位藝術家在查詢中完全顯示
這使我得到了第一個結果要求,但我覺得它可以寫得更好。
SELECT ID,Artist, Title FROM
videos join runlog on runlog.videoID = videos.id
where
(select COUNT(*) from runlog where datetime > DATEADD(hh,-12,GETDATE())
and runlog.videoID = videos.id) = 0
order by Artist, Title
第二個要求我無法弄清楚如何放在一起的查詢。
只是'和'他們seprate子查詢在:例如'如果(subquery1)和(subquery2)和(subquery3)' – RezaRahmati
我想,如果我有一個runlog VideoID的,我想查詢視頻表EXCLUDING具有與該視頻ID匹配的藝術家的任何記錄。所以說,如果我運行麥當娜的視頻videoID 10,我不希望任何其他麥當娜視頻出現在視頻查詢中。我不知道如何編寫一個子查詢,排除來自藝術家的記錄後,它必須加入找到該字段。 –