[英]MySQL - search for NULL values
我已經測試了一個奇怪的查詢,其中涉及到我搜索不存在的記錄。
簡而言之,我有3個tables
: tbl_customers
tbl_customers_notes
tbl_customers_pipelines
客戶和Notes很明顯,但管道卻不明顯。 基本上,管道就是管理員分配給單個customerid
。
這是管道的表結構:
ID | 客戶ID | adminid |
我不必創建ID
列,但是無論如何我都做了,它會自動遞增。
每個客戶記錄都是從沒有加入管道記錄開始的。 因此,在首次創建customerid時為空。 如果要分配管理員來管理該新的customerid,只需為每個adminid添加一條記錄:
ID | customerid | adminid
---------------------------
1 | 45 | 6
2 | 45 | 8
3 | 45 | 10
這意味着customerid:45已分配了3個adminid。
(順便說一句,adminid就像銷售人員)
我下面有一個查詢,使我可以搜索缺少特定adminid注釋的customerid。 而且效果很好:
SELECT c.*
FROM `tbl_customers` c
LEFT JOIN `tbl_customers_pipelines` cp ON c.customerid = cp.customerid
WHERE c.customerid
NOT IN(SELECT n.customerid
FROM `tbl_customers_notes` n
WHERE n.datesubmitted BETWEEN '2011-12-01 14:00:00'
AND '2011-12-03 13:59:59'
AND n.categoryid IN(10)
)
AND cp.adminid = 855
您會注意到我在WHERE子句之后執行子查詢。 這確實按預期工作。 我只顯示具有特定注釋並在管道表中具有特定adminid的客戶記錄。
我想做相反的事情。
並搜索完全缺少管道/管理員記錄的客戶記錄。 我本質上是在尋找有注釋但沒有adminid的customerid。 這就是我在構建查詢時遇到的困惑的地方。
我唯一的想法是將“ AND cp.adminid = 855”替換為“ AND ISNULL(cp.ID)”
而且不會產生任何結果。 但是確實有記錄。 因此查詢剛剛結束。 有人看到我想念的東西嗎?
嘗試:
AND cp.ID IS NULL
代替
AND cp.adminid = 855
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.