簡體   English   中英

MySQL-搜索NULL值

[英]MySQL - search for NULL values

我已經測試了一個奇怪的查詢,其中涉及到我搜索不存在的記錄。

簡而言之,我有3個tablestbl_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM