gpt4 book ai didi

mysql - 返回与 MySQL 中另一个表无关的条目的最有效方法?

转载 作者:行者123 更新时间:2023-11-29 05:25:12 26 4
gpt4 key购买 nike

我正在开发一个餐 table 预订系统,我想列出所有尚未收到任何预订的餐厅。

我想到了以下方法:

  • 使用 NOT IN():

    SELECT * FROM Restaurant
    WHERE id NOT IN(SELECT restaurantId FROM Reservation);
  • 使用 LEFT JOIN:

    SELECT rst.* FROM Restaurant rst
    LEFT JOIN Reservation rvn ON rvn.restaurantId = rst.id
    WHERE rvn.id IS NULL;

为了提高效率,我会赞成第二种方法。

有没有比这两种方法更有效的方法?

最佳答案

MySQL 中的

joins 通常是提高性能的不错选择。在这种情况下,不存在 可能是最快的方法:

SELECT *
FROM Restaurant r
WHERE not exists (select 1 from Reservation rv where rv.restaurantId = r.id);

为了获得最佳性能,您需要在 Reservation(restaurantId) 上建立索引。

关于mysql - 返回与 MySQL 中另一个表无关的条目的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com