2017-05-07 49 views
2
SELECT LOGS.UserID, LOGS.UserName, LOGS.TransactionTime FROM LOGS 
WHERE LOGS.TransactionTime BETWEEN DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T06:00:00') AND DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T08:00:00') 

這是我的第一個查詢。我從我的LOGS表中獲得工作人員開始工作的結果。如何先查詢table1並同時用結果+ table2作第二個查詢

我有另一個名爲工人的表,其中包括所有的工人。

我想比較myfirstquery.UserID with Workers.UserID和查詢應該告訴我誰是不是在myfirstquery(這意味着誰是不工作的那一天),但我需要做的是在一個查詢。

回答

3

您可以使用not exists操作:

SELECT * 
FROM workers w 
WHERE NOT EXISTS (SELECT * 
        FROM logs l 
        WHERE w.UserId = l.UserId AND 
          l.TransactionTime BETWEEN 
          DATEADD(day, DATEDIFF(day, '20010101', GETDATE()), '2001-01-01T06:00:00') AND 
          DATEADD(day, DATEDIFF(day, '20010101', GETDATE()), '2001-01-01T08:00:00') 
+0

同樣可以使用'NOT IN'運營商也可以實現 – Hexxx

相關問題