要查找一个 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)
从上面的输出可以清楚地看出,我们发现了两条不存在于 第一个表。
原文来自:www.php.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容