gpt4 book ai didi

mysql - PhpMyAdmin SQL 查询返回带有计数的内部连接表上的多条记录

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

我的数据库中有两个表:“发票”和“客户”。我正在尝试创建一个查询,显示已放置的客户列表两个或更多订单。如果我只查看单个客户(在本例中为 ID 为“C120”的客户),则以下语句有效。

SELECT `invoices`.date,`customers`.name FROM `invoices` 
INNER JOIN `customers`
ON `invoices`.cust_id=`customers`.cust_id
WHERE `invoices`.cust_id = 'C120'
HAVING COUNT(`invoices`.date) >=2;

但是,我想要查看所有符合搜索条件的客户。

我尝试使用以下形式的 LIKE:

WHERE (`customers`.`cust_id` LIKE 'C%')

(所有客户 ID 都是以“C”开头的四个字符),但这只是返回“customers”中的第一个客户,该客户甚至不满足 >= 2 条件。也尝试过

WHERE `invoices`.cust_id = 'C*' 

返回一个空集。

我已经没有想法了,希望得到一些帮助,谢谢。

客户表如下:

cust_id     name
C100 Bloggs
C110 Pekkonen
C120 Finklefluffle

发票表是:

date    cust_id     amount
2017-10-09 C100 27.78
2017-11-28 C110 409.66
2017-10-17 C110 2729.3
2017-10-09 C120 2.66
2017-11-06 C110 300
2017-11-21 C120 59.65

我想要的结果是:

C110 Pekkonen
C120 Finklefluffle

甚至更好

C110 Pekkonen 3
C120 Finklefluffle 2

我得到了什么

WHERE (`customers`.`cust_id` LIKE 'C%')

完全错误:

C100    Bloggs 

以及我得到了什么

WHERE `invoices`.cust_id = 'C*'

是“空数据集”..也不正确。

最佳答案

你可以试试这个

    SELECT `customers`.cust_id , `customers`.name, count(*) FROM `invoices` 
INNER JOIN `customers`
ON `invoices`.cust_id=`customers`.cust_id
GROUP BY `customers`.cust_id , `customers`.name
HAVING COUNT(`invoices`.date) >=2;

关于mysql - PhpMyAdmin SQL 查询返回带有计数的内部连接表上的多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47302656/

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