📌  相关文章
📜  como hacer una Consulta de un registro que no esta en una tabla en mysql (1)

📅  最后修改于: 2023-12-03 14:40:10.500000             🧑  作者: Mango

如何查找MySQL表中不存在的记录?

有时候我们需要查询表中不存在的记录,但是MySQL不提供查询不存在记录的直接方法。不过,我们可以通过连结另一个表,将原始表中的所有记录与某个值相匹配的记录作比较,从而得出该表中不存在的记录。

以下是一个示例,演示如何查找一个名为customer的表中不属于另一个名为orders的表的客户记录:

  1. 添加一列

可以在customer表中添加一个名为order_id 的列,使其与 orders表的order_id列相同。我们可以通过下列代码实现:

ALTER TABLE customer ADD order_id INT DEFAULT 0;

这将在customer表中添加一个名为order_id的整数类型列,并将其默认值设置为0。

  1. 连结

然后,我们可以使用LEFT JOIN 连结语句查询customer表中不存在于orders表中的记录,使用以下语句实现:

SELECT customer.id, customer.name
FROM customer
LEFT JOIN orders
ON customer.order_id = orders.order_id
WHERE orders.order_id IS NULL;

这意味着customer表中所有order_idorders表中的order_id不匹配的记录都将被返回。

我们在上面添加了一列order_id,其目的是将customer表中的记录与orders表的记录进行比较。查找不属于另一个表的记录时,我们可以将表与表相连结,找出不匹配的数据行。

这便是如何查找MySQL中一个表中不存在记录的方法。这对于许多不同的用例非常有用,包括找出没有购买某个特定产品的所有客户,以及找出从未付款的订单。