Mysql Присоединяется, подсчитывает и суммирует?

#mysql #sql

Вопрос:

таблица кампании-это товар для продажи, а в таблице транзакций-проданный товар. Я хочу подсчитать транзакции_id, которые составляют таблицу транзакций, и суммировать общее количество проданных товаров.. но таблицы разные..

Вот что я попробовал:

 $uid = $_GET['uid'];

$query = "
  SELECT
    transaction.*, 
    count(*) AS transaction.transaction_id,
    sum(*) AS campaign.payout 
  FROM transaction 
  JOIN transaction.c_id=campaign.c_id 
  GROUP_BY c_id 
  WHERE uid=$uid AND DATE(dateTime)=DATE(NOW())";

$result = mysqli_query($conn, $query);

while ($row = mysqli_fetch_assoc($result))

{$transaction_id = $row['transaction_id'];
 $payout = $row['payout'];}  
echo "payment: [".$payout."] transaction: [".$transaction_id."]";
 

таблица кампании:

     ------------------------
    |c_id | c_name | payout| 
    -----------------------
    |  1  | c_n1   | 100   |
    |  2  | c_n2   | 200   |
    |  3  | c_n3   | 300   |
    ------------------------
 

таблица транзакций:

 --------------------------------
|transaction_id | c_id | valid | 
--------------------------------
|  12325sdfsf3  | 1    | 1     |
|  324ssggsgs3  | 1    | 1     |
|  f2fs33fs3sg  | 3    | 1     |
--------------------------------
 

Ответ №1:

Чтобы получить общую выплату по всем транзакциям, вам необходимо выполнить объединение. Например:

 select
  count(*) as total_count,
  sum(c.payout) as total_payout
from transaction t
join campaign c on c.c_id = t.c_id
 

SUM() Функция сложит все значения из payout столбца.