Сумма строки поля MEDOO

Я пытаюсь получить суммированное поле в меду.

Мой sql на данный момент выглядит так:

$database->debug()->select("user_rupees_in_house", [
"[<]rupees" => ["rupee_id" => "ID"]
], [
"name",
"amount",
"amount_spend"], [
"user_uuid"  => $user,
"GROUP" => "rupee_id"]);

Отладка регистрирует следующий оператор:

SELECT `name`,`amount`,`amount_spend`, `rupee_id`
FROM `user_rupees_in_house`
RIGHT JOIN `rupees`
ON `user_rupees_in_house`.`rupee_id` = `rupees`.`ID`
WHERE `user_uuid` = '4da9ff11-56ca3a2f-b3ab-a25b9230'
GROUP BY `rupee_id`

То, что я пытаюсь достичь, это:

SELECT `name`,SUM(`amount`),SUM(`amount_spend`), `rupee_id`
FROM `user_rupees_in_house`
RIGHT JOIN `rupees`
ON `user_rupees_in_house`.`rupee_id` = `rupees`.`ID`
WHERE `user_uuid` = '4da9ff11-56ca3a2f-b3ab-a25b9230'
GROUP BY `rupee_id`

Кто-нибудь знает, как сделать это заявление в Medoo?

[РЕДАКТИРОВАТЬ 1]

Нашел другой способ достижения этого

// Get the rupee types
$rupee_types = $database->select("rupees", "ID");

foreach ($rupee_types as $rupee_type) {
$amount = $database->sum("user_rupees_in_house", "amount", [
"AND" => [
"rupee_id" => $rupee_type,
"user_uuid" => $user
]
]);

// Build array of rupees
}

Это сделает намного больше обращений к базе данных, но работает нормально, пока SELECT Оператор не поддерживает агрегатные функции.

0

Решение

Medoo не поддерживает агрегатную функцию в SELECT заявление. использование raw запрос вместо.

Попробуй это:

$result = $database->query(
"SELECT `name`,SUM(`amount`),SUM(`amount_spend`), `rupee_id`
FROM `user_rupees_in_house`
RIGHT JOIN `rupees`
ON `user_rupees_in_house`.`rupee_id` = `rupees`.`ID`
WHERE `user_uuid` = '$user'
GROUP BY `rupee_id`")->fetchAll();

Ссылка

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]