Палец вверх 3
Перевод
Перевод

Извлечение данных из 3 связанных таблиц с INNER JOIN

Я хочу получить сумму столбцов цен и товаров, которые связаны с 3 таблицами. Я пытаюсь использовать INNER INNER JOIN в следующем скрипте. Отображается только 1 сумма счета. И еще оператор не отображает 0, когда данные равны 0.

function TotalRecord($total){
global $db;
$date = date("Y-m-d");
     $query = $db->prepare("SELECT sum(a.prices), sum(a.item) FROM items a INNER 
    JOIN invoice_items b ON a.item_id = b.item_id INNER JOIN invoices c ON 
    b.invoiceId = c.invoiceId  WHERE c.invoice_date = :date ");
    $query->bindParam(':date', $date);
    $query->execute();
    for($i=0; 
             $rows = $query->fetch(); 
    $i++){
         $totalPrice = $rows['sum(a.prices)'];
         $totalitems = $rows['sum(a.item)'];
         $array = array('total' => $totalPrice , 'items' => $totalitems );

        if(count($array) > 0)
        {
            echo $array[$total];
        }
        else
        {
            echo "0";
        }

    }
}
php if-statement inner-join sum
задан SamDasti 10 июн. 2018 г., 12:55:06
источник

2 ответа

Решение 2
Перевод
Перевод

Если у вас есть несколько функций SUM, вам, вероятно, следует использовать инструкцию GROUP BY. Смотрите ниже https://www.w3schools.com/sql/sql_groupby.asp
https://www.w3resource.com/sql/aggregate-functions/sum-with-group-by.php

ответ дан Flyzzx 10 июн. 2018 г., 12:58:44
источник
Палец вверх 0
Перевод
Перевод

попробуй это

 SELECT sum(a.prices), sum(a.item) FROM (items a INNER 
JOIN invoice_items b ON a.item_id = b.item_id INNER JOIN invoices c ON 
b.invoiceId = c.invoiceId )  group by  b.item_id,b.invoiceid WHERE c.invoice_date = :date
ответ дан antara bhattacharya 10 июн. 2018 г., 13:08:01
источник