gpt4 book ai didi

sql - 从 SQL 中的多个数据库中选择 COUNT()

转载 作者:行者123 更新时间:2023-12-04 14:08:04 24 4
gpt4 key购买 nike

我正在尝试返回位于特定州且已租借特定电影的客户数量,其中,rents 表包含两列,一列用于客户 ID,另一列用于电影 ID。该函数接受电影 ID 和状态,并返回一个包含客户数量的整数。

现在我有一个实现,但它会计算整个查询返回的行数:

SELECT COUNT(*) as numCustomers FROM CUSTOMER C, RENTS R WHERE C.ST = '" + state + "' AND R.mid = " + movieID

然后我计算行数。我希望能够检查 numCustomers 以获取正确的数据。谢谢!

最佳答案

首先,您缺少一个子句来链接您的 RENTS 表和 CustomerId 上的 CUSTOMER 表?

其次,您应该使用 FROM 子句中的 INNER JOIN 功能来添加您的两个表。

第三,你不应该将你的 sql 构建成这样的字符串,因为你会被 SQL 注入(inject)打开。

猜测一下,您可能需要的 SQL 类型如下。

DECLARE @movieId int
DECLARE @state varchar(2)

SET @movieId = 12345
SET @state = 'NY'

SELECT
COUNT(DISTINCT C.CustomerID) as numCustomers
FROM
CUSTOMER C
INNER JOIN
RENTS R
ON
C.CustomerID = R.CustomerId
WHERE
C.ST = @state
AND
R.mid = @movieId

关于sql - 从 SQL 中的多个数据库中选择 COUNT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/674929/

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