gpt4 book ai didi

MySQL嵌套计数和返回值

转载 作者:行者123 更新时间:2023-11-30 22:58:03 26 4
gpt4 key购买 nike

我到处搜索,似乎无法找到一种方法来做我想做的事。我有一张 table ,上面有一些客户、一些产品及其关系。

我想计算这部分查询返回的行数

SELECT id
FROM customer
WHERE customer.name = 'SMITH'
OR customer.name = 'JONES'

我还想返回匹配 SMITH 和 JONES(或选择的其他客户名称)的 ID。我想将返回行的计数用作变量(表示为@var)。我只想返回与我的变量匹配的产品、ID 和计数。

我的问题是:

  1. 有没有一种方法可以在单个 SQL 查询中完成?
  2. 有没有办法返回计数和值?
  3. 我不想将其放入 PHP 脚本或类似脚本中。

    SELECT x.pId, p.productdesc, count(x.dId) as count
    FROM
    (
    SELECT DISTINCT cId, pId
    FROM Client
    WHERE cId IN
    (
    SELECT id
    FROM customer
    WHERE customer.name = 'SMITH'
    OR customer.name = 'JONES'

    )
    )x
    JOIN Products p ON x.pId = p.id
    GROUP BY x.pId
    HAVING count = @var

谢谢,

中号

最佳答案

这是对您所问内容的“字面”回答,因为您可以在 having 子句中使用子查询。但是,有了更多信息(样本数据和预期结果),可能会有更好的方法来完成您想要的事情。

select x.pid, p.productdesc, count(x.pid) as count
from (select distinct cl.cid, cl.pid
from client cl
join customer cu
on cl.cid = cu.id
where cu.name in ('SMITH', 'JONES')) x
join products p
on x.pid = p.id
group by x.pid, p.productdesc
having count(x.pid) = (select count(*)
from customer
where name in ('SMITH', 'JONES'))

关于MySQL嵌套计数和返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25416246/

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