如何判斷多個欄位組成的關鍵字在另外一張表中是否存在,欄位關鍵字

來源:互聯網
上載者:User

如何判斷多個欄位組成的關鍵字在另外一張表中是否存在,欄位關鍵字

如何判斷多個欄位組成的關鍵字在另外一張表中是否存在

老帥(20141107)

1.首先判斷一個關鍵字在另外一張表中是否存在很容易!

SELECT * FROM a 

WHERE a.ID 

IN

 (

SELECT b.ID 

FROM b

)


2.如果判斷的關鍵字有多個欄位構成怎麼辦呢?

你不能在IN中使用多個欄位。如下查詢:

SELECT * FROM a

WHERE (a.ID1, a.ID2) 

IN

(

SELECT b.ID1, b.ID2

FROM b

)

這不會正常工作,違反了SQLSERVER標準。


3.要解決這一問題,可以用EXISTS來代替IN!

SELECT * FROM a

WHERE EXISTS

(

SELECT NULL

FROM b

WHERE a.ID1 = b.ID1

AND a.ID2 = b.ID2

)


4.值得注意的是,這僅適用於IN,而非NOT IN!

NOT IN與NOT EXISTS在處理空值的方式上略有不同。

SELECT *

FROM a

WHERE (a.ID1, a.ID2) NOT IN

(

SELECT b.ID1, b.ID2

FROM b

)

這不會正常工作,違反了SQLSERVER標準。要模仿NOT IN的查詢如下:

我們必須使用以下查詢:

SELECT *

FROM a

WHERE NOT EXISTS

(

SELECT NULL

FROM b

WHERE a.ID1 = b.ID1

AND a.ID2 = b.ID2

)

AND NOT EXISTS

(

SELECT NULL

FROM b

WHERE b.ID1 IS NULL 

OR b.ID2 IS NULL

)

第二個謂詞確保b在ID1和ID2中不會有空值,任何這樣的值都會讓原始查詢不會返回結果!


access中利用一張表的欄位作為關鍵字,尋找出另一張表的一個欄位中包含這些關鍵字的記錄

我暈了..說那麼複雜...就是left join啊...
而且你得結果肯定有問題...4是哪裡冒出來的

select 表B.記錄,表A.詳情
from 表B left join 表A
on 表B.記錄=表A.記錄

.............
我不確定access的left join 和 full join之類的能不能用...
但是我記得是可以
 
助 excel 怎查詢欄位中是否存在關鍵字列表中的關鍵字

D1儲存格寫入公式
=COUNT(FIND(A$1:A$5,C1))>0

=OR(ISNUMBER(FIND(A$1:A$5,C1)))
陣列公式,按下SHIFT+CTRL+ENTER三鍵,下拉填充公式
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.