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






