gpt4 book ai didi

使用函数时 MySQL Join 或 Subquery?

转载 作者:行者123 更新时间:2023-11-30 22:53:47 27 4
gpt4 key购买 nike

假设我有一个名为 customers 的表和一个名为 customer_bills 的表

我想清点客户账单。

我有一个名为 countBills 的函数,它获取 (int) input 并在其中返回 (SELECT count(id) FROM customer_bills WHERE customerId = 输入)

当我使用 SELECT id, countBills(id) FROM customers

发生了什么事?

SELECT id, (SELECT COUNT(id) FROM customer_bills) FROM customers

或者是 SELECT id, count(customer_bills.id) FROM customers JOIN customer_bills ON customer.id = customer_bills.customerId

所以简而言之,MySQL 是否知道如何在使用函数时优化查询,因为众所周知连接比子查询更快?

最佳答案

子查询总是比连接慢。所以你不应该在这种简单的情况下使用函数。你可以使用这个查询。

SELECT c.id, count(cb.id) FROM customers c JOIN customer_bills cb ON c.id = cb.customerId group by c.id;

关于使用函数时 MySQL Join 或 Subquery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27269131/

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