MySQL选择查询从表中选择不在另一个表中的行?

对于我们的示例,我们将创建两个表并应用“自然左联接”以从第二个表中不存在的表中获取行。

创建第一个表。

mysql> create table FirstTableDemo

   -> (

   -> id int,

   -> name varchar(100)

   -> );

将记录插入第一个表。

mysql> insert into FirstTableDemo values(1,'Bob'),(2,'John'),(3,'Carol');

Records: 3  Duplicates: 0  Warnings: 0

显示所有记录。

mysql> select *from FirstTableDemo;

以下是输出。

+------+-------+

| id   | name  |

+------+-------+

|    1 | Bob   |

|    2 | John  |

|    3 | Carol |

+------+-------+

3 rows in set (0.00 sec)

创建第二个表。

mysql> create table SecondTableDemo

   -> (

   -> id int,

   -> name varchar(100)

   -> );

将记录插入第二个表。

mysql> insert into SecondTableDemo values(1,'Bob'),(2,'John');

Records: 2  Duplicates: 0  Warnings: 0

显示所有记录。

mysql> select *from SecondTableDemo;

以下是输出。

+------+------+

| id   | name |

+------+------+

|    1 | Bob  |

|    2 | John |

+------+------+

以下是选择不在第二个表中的行的语法。

mysql> SELECT tbl1.*

    -> FROM FirstTableDemo tbl1

    -> NATURAL LEFT JOIN  SecondTableDemo tbl2

    -> where tbl2.name IS NULL;

以下是显示第一个表中而不是第二个表(即“ Carol”)中的行的输出。

+------+-------+

| id   | name  |

+------+-------+

|    3 | Carol |

+------+-------+

1 row in set (0.03 sec)

以上是 MySQL选择查询从表中选择不在另一个表中的行? 的全部内容, 来源链接: utcz.com/z/340928.html

回到顶部