我有兩個表格:
1. tableA是包含許多列的記錄列表。有一個名爲「創建」的時間戳列
2. tableB用於跟蹤我的應用程序中已鎖定tableA中的記錄以供審閱的用戶。它由四列組成:id,user_id,record_id和另一個時間戳列表。我試圖從tableA中選擇最多10個記錄,還沒有被tableB中的任何人鎖定以供審查(我還在WHERE子句中通過來自tableA的一些其他列(如記錄狀態)進行篩選)。以下是我到目前爲止所得到的結果:爲什麼SELECT ... JOIN語句不返回結果?
SELECT tableA.* FROM tableA
LEFT OUTER JOIN tableB ON tableA.id = tableB.record_id WHERE
tableB.id = NULL AND
tableA.status = 'new' AND
tableA.project != 'someproject' AND
tableA.created BETWEEN '1999-01-01 00:00:00' AND '2010-05-06 23:59:59'
ORDER BY tableA.created ASC LIMIT 0, 10;
當前tableA中有幾千條記錄,tableB中有零條記錄。有一定落在這些時間戳之間的記錄,及以上返回零行,我用一個簡單的
SELECT * FROM tableA WHERE
created BETWEEN '1999-01-01 00:00:00' AND '2010-05-06 23:59:59'
第一條語句驗證了這一點,而第二個返回了2000行。
非常好。像魅力一樣工作。謝謝! – Stephen 2010-05-07 17:58:40