首頁 資料庫 mysql教程 如何判断多个字段组成的关键字在另外一张表中是否存在

如何判断多个字段组成的关键字在另外一张表中是否存在

Jun 07, 2016 pm 04:10 PM
關鍵字 判斷 多個 如何 欄位 組成 表中

如何判断多个字段组成的关键字在另外一张表中是否存在 老帅(20141107) 1.首先判断一个关键字在另外一张表中是否存在很容易! SELECT * FROM a WHERE a.ID IN ( SELECT b.ID FROM b ) 2.如果判断的关键字有多个字段构成怎么办呢? 你不能在IN中使用多个字段

如何判断多个字段组成的关键字在另外一张表中是否存在

老帅(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中不会有空值,任何这样的值都会让原始查询不会返回结果!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
PHP郵件偵測:判斷郵件是否已傳送成功。 PHP郵件偵測:判斷郵件是否已傳送成功。 Sep 19, 2023 am 09:16 AM

PHP郵件偵測:判斷郵件是否已傳送成功。在開發網頁應用程式時,經常需要發送電子郵件來與使用者溝通,無論是註冊確認、密碼重設或發送通知,郵件功能都是不可或缺的一部分。但是,有時我們無法確保郵件是否真正發送成功,因此我們需要進行郵件檢測以及判斷郵件是否已成功發送。本文將介紹如何使用PHP來實現這個功能。一、使用SMTP伺服器發送郵件首先,我們需要使用SM

使用java的Character.isDigit()函數判斷字元是否為數字 使用java的Character.isDigit()函數判斷字元是否為數字 Jul 27, 2023 am 09:32 AM

使用Java的Character.isDigit()函數判斷字元是否為數字字元在電腦內部以ASCII碼的形式表示,每個字元都有一個對應的ASCII碼。其中,數字字元0到9分別對應的ASCII碼值為48到57。要判斷一個字元是否為數字,可以使用Java中的Character類別提供的isDigit()方法來判斷。 isDigit()方法是Character類別的

使用java的File.isDirectory()函數判斷檔案是否存在且為目錄類型 使用java的File.isDirectory()函數判斷檔案是否存在且為目錄類型 Jul 24, 2023 pm 06:57 PM

使用java的File.isDirectory()函數判斷檔案是否存在且為目錄類型在Java程式設計中,常常會遇到需要判斷一個檔案是否存在且為目錄類型的情況。 Java提供了File類別來操作檔案和目錄,其中的isDirectory()函數可以幫助我們判斷一個檔案是否是目錄類型。 File.isDirectory()函數是File類別中的一個方法,其作用是判斷目前Fil

如何使用Double類別的isInfinite()方法判斷一個數是否為無限大 如何使用Double類別的isInfinite()方法判斷一個數是否為無限大 Jul 24, 2023 am 10:10 AM

如何使用Double類別的isInfinite()方法判斷一個數是否為無限大在Java中,Double類別是用來表示浮點數的包裝類別。此類別提供了一系列方法,可以方便地對浮點數進行操作。其中,isInfinite()方法就是用來判斷一個浮點數是否為無限大的方法。無窮大是指大到超出了浮點數所能表示的範圍的正無窮和負無窮。在計算機中,浮點數的最​​大值可以通過Double類

如何在Excel中對多個工作表中的儲存格求和 如何在Excel中對多個工作表中的儲存格求和 Feb 19, 2024 pm 01:57 PM

本文將示範如何在Excel中對多個工作表中的儲存格進行求和。 MicrosoftExcel是一個功能強大的電子表格程序,用於資料管理。在處理資料時,可能需要跨多個單元格進行求和。本指南將指導您如何輕鬆實現這一目標。如何在Excel中對多個工作表中的儲存格求和在Excel中對多個工作表中的儲存格求和時,可能會遇到以下兩種情況:在儲存格區域中新增單一儲存格值時添加值我們將在這裡介紹這兩種方法。在Excel中跨多個工作表添加單一單元格值我們收集了包含6家不同公司在連續四個月(從1月到4月)的銷售額的樣本數

深入解析C語言中static關鍵字的作用與用法 深入解析C語言中static關鍵字的作用與用法 Feb 20, 2024 pm 04:30 PM

深入解析C語言中static關鍵字的功能和用法在C語言中,static是一種非常重要的關鍵字,它可以被用於函數、變數和資料類型的定義。使用static關鍵字可以改變物件的連結屬性、作用域和生命週期,以下就來詳細解析一下static關鍵字在C語言中的作用和用法。 static變數與函數:在函數內部使用static關鍵字定義的變數稱為靜態變量,它具有全域生命週

Go語言中如何判斷日期是否為前一天? Go語言中如何判斷日期是否為前一天? Mar 24, 2024 am 10:09 AM

題目:Go語言中如何判斷日期是否為前一天?在日常開發中,常常會遇到需要判斷日期是否為前一天的情況。在Go語言中,我們可以透過時間運算來實現這個功能。以下將結合具體的程式碼範例來示範如何在Go語言中判斷日期是否為前一天。首先,我們需要導入Go語言中的時間包,程式碼如下:import("time")接著,我們定義一個函式IsYest

jQuery使用實踐:判斷變數是否為空的幾種方式 jQuery使用實踐:判斷變數是否為空的幾種方式 Feb 27, 2024 pm 04:12 PM

jQuery是一個廣泛應用於Web開發中的JavaScript庫,它提供了許多簡潔方便的方法來操作網頁元素和處理事件。在實際開發中,常會遇到需要判斷變數是否為空的情況。本文將介紹使用jQuery判斷變數是否為空的幾種常用方法,並附上具體的程式碼範例。方法一:使用if語句判斷varstr="";if(str){co

See all articles