#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
столбца.