我得到了2個表格,我保留位置信息和人員位置。我想找到那些沒有離開這個地方的人。所以我在這兩個表中都有客戶端ID和位置ID。在我的位置表中,我知道哪個地方在外面。下面的查詢給了我裏面的人。如果我使isOutside = 1,它給了我外面的人。所以問題是,一個人可以有條目,其中isOutside等於1或0。我怎麼能區分誰擁有isOutside值爲0,但沒有任何人進入其中isOutside等於1根據列值不同,在表格中不存在任何其他條目
SELECT DISTINCT(macID)
FROM locations a, logs b
WHERE b.location_id = a.id and b.client_id=1 and Date(b.lastLocatedTime) = '2015-01-16'
and a.isOutside =0 and b.client_id = a.client_id
更新
我寫了這個查詢哪些爲我工作。這與波希米亞的答案類似。
SELECT COUNT(DISTINCT macID)
FROM logs
WHERE location_id IN (SELECT id FROM locations WHERE isOutside = 0) AND client_id = 1 AND
DATE(lastLocatedTime) = '2015-01-16' AND macID NOT IN
(SELECT macID
FROM logs
WHERE DATE(lastLocatedTime) = '2015-01-16' AND
location_id IN (SELECT id FROM locations WHERE isOutside = 1))
然而,我試過這個,即使它沒有顯示有isOutside值爲0的人,但這並不意味着他們在表中沒有isOutside值爲0。 – 2015-03-31 07:33:28