簡體   English   中英

2個SQL表的組合

[英]Combination of 2 sql tables

我有下表(簡化后):

 CUSTOMERS
 -int id
 -varchar name

 ENVENTS
 -int id
 -int customer_id
 -int duration

我的問題是,我想獲取具有相同customer_id的持續時間總和,然后用表客戶的名稱替換customer_id。

所以輸出應該是:

+--------------+----------------+
| name         | sum(durtaions) |
+--------------+----------------+
| customername |          12313 |
+--------------+----------------+
  • 那只是一個例子。

有人可以給我提示嗎?

嘗試連接兩個表並使用GROUP BY子句來實現此目的:

SELECT c.name
      ,SUM(e.duration) AS duration
  FROM Customers c 
  JOIN EVENTS e 
    ON c.id = e.customer_id
 GROUP BY c.id

參見此示例SQLFiddle


編輯:

如果客戶不在事件表中,請嘗試使用LEFT JOIN獲取持續時間為0的客戶名稱

SELECT c.name
      ,IFNULL(SUM(e.duration),0) AS duration
  FROM Customers c 
  LEFT JOIN EVENTS e 
    ON c.id = e.customer_id
 GROUP BY c.id

看到這個SQLFiddle

看看MySQL中的JOINSQL連接的可視化解釋

請嘗試以下代碼。

select c.name,SUM(e.duaration) as duration 
from customer as c 
left join events as e 
    on c.id = e.id 
group by e.customer_id

暫無
暫無

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

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