要查找一個 MySQL 表中不存在于另一個表中的記錄,我們可以使用
對沒有記錄的表進行子查詢。使用以下可以更好地理解這一點
給定步驟 –
首先使用 create 命令創建一個表。表名稱是“PresentHistory”,它有
兩列。給出如下 –
mysql> CREATE table PresentHistory -> ( -> HisID int, -> HisName varchar(100) -> ); Query OK, 0 rows affected (0.54 sec)
登錄后復制
創建表后,將插入一些記錄,這些記錄將出現在第二個表中:
出色地。這是在插入命令的幫助下完成的,如下所示 –
mysql> INSERT into PresentHistory values(1,'John'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into PresentHistory values(2,'Bob'); Query OK, 1 row affected (0.15 sec)
登錄后復制
插入記錄成功后,用select語句顯示如下 –
mysql> SELECT * from PresentHistory;
登錄后復制
執行上述查詢后,得到的輸出為。
+-------+---------+ | HisID | HisName | +-------+---------+ | 1 | John | | 2 | Bob | +-------+---------+ 2 rows in set (0.00 sec)
登錄后復制
現在,使用 create 命令創建第二個表。該表名為“PastHistory”
并包含兩列,如下所示。
mysql> CREATE table PastHistory -> ( -> PastId int, -> PastName varchar(100) -> ); Query OK, 0 rows affected (0.74 sec)
登錄后復制
創建表后,第一個表中存在一些記錄,而第一個表中存在一些記錄
第一個表中不存在的內容將插入 PastHistory 表中。
mysql> INSERT into PastHistory values(1,'John'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into PastHistory values(2,'Bob'); Query OK, 1 row affected (0.13 sec) mysql> INSERT into PastHistory values(3,'Carol'); Query OK, 1 row affected (0.17 sec) mysql> INSERT into PastHistory values(4,'Jason'); Query OK, 1 row affected (0.16 sec)
登錄后復制
現在,第二個表中有 4 條記錄。其中,2 條記錄來自第一個表,
第二個表中有 2 條記錄不同。
通過 select 語句可以看到第二個表中的記錄如下 –
mysql> SELECT * from PastHistory;
登錄后復制
上述查詢的輸出是
+--------+----------+ | PastId | PastName | +--------+----------+ | 1 | John | | 2 | Bob | | 3 | Carol | | 4 | Jason | +--------+----------+ 4 rows in set (0.00 sec)
登錄后復制
檢查一個表中第二個表中不存在的記錄的語法如下
如下 –
SELECT * from yourSecondTableName where columnNamefromSecondtable NOT IN (SELECT columnNamefromfirsttable from yourFirstTableName);
登錄后復制
給定的查詢用于獲取第二個表中不同的記錄 –
mysql> SELECT * from PastHistory where PastName not in (select HisName from PresentHistory);
登錄后復制
The output of the above query is as 如下 –
+--------+----------+ | PastId | PastName | +--------+----------+ | 3 | Carol | | 4 | Jason | +--------+----------+ 2 rows in set (0.00 sec)
登錄后復制
從上面的輸出可以清楚地看出,我們發現了兩條不存在于
第一個表。
以上就是查找一個 MySQL 表中不存在于另一個表中的記錄?的詳細內容,更多請關注www.92cms.cn其它相關文章!