簡體   English   中英

PhpMyAdmin SQL查詢返回內部連接表上具有count的多個記錄

[英]PhpMyAdmin SQL query to return multiple records on inner joined tables with count

我在數據庫中有兩個表,“發票”和“客戶”。 我正在嘗試創建一個查詢,該查詢顯示已下兩個或更多訂單的客戶列表。 如果僅查看單個客戶(在這種情況下,客戶的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'開頭的四個字符),但是所有這一切都是返回'客戶'中的第一個客戶,甚至不滿足> = 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM