Как правильно сделать запрос в mySQL?

129
02 октября 2019, 00:50

Есть часть кода:

$k = $pdo->prepare("SELECT cars.*, SUM(cars_fuel.distance) as distance, SUM(cars_fuel.fuel) as fuel,
                    SUM(cars_fuel.money) as money
              FROM cars, cars_fuel 
              WHERE cars.car_user_id = :user_id AND (cars.car_id = cars_fuel.cars_fuel_cars_id OR cars.car_id NOT IN cars_fuel)  AND cars.delete_date IS NULL
              GROUP BY cars_fuel.cars_fuel_cars_id");
        $k->execute(['user_id'=>$lg]);

В таблице cars имеются записи об автомобилях cars.car_id. А в таблице cars_fuel - данные по расходу топлива этих автомобилей.

Вопрос: Как написать запрос, чтобы в результате $cars = $k->fetchAll(PDO::FETCH_ASSOC); отображались все автомобили с таблицы cars, а не только те автомобили, у которых есть записи в cars_fuel?

Answer 1
$k = $pdo->prepare("SELECT cars.*, SUM(cars_fuel.distance) as distance, SUM(cars_fuel.fuel) as fuel,
                    SUM(cars_fuel.money) as money
              FROM cars
              LEFT JOIN cars_fuel ON (cars.car_id = cars_fuel.cars_fuel_cars_id)
              WHERE cars.car_user_id = :user_id AND cars.delete_date IS NULL
              GROUP BY cars.car_id");
        $k->execute(['user_id'=>$lg]);
        $cars = $k->fetchAll(PDO::FETCH_ASSOC);
READ ALSO
Как хранить в БД комментарии с ответами?

Как хранить в БД комментарии с ответами?

У меня в бд комментарии хранятся следующим образом: каждая строка - это отдельный комментарий, а в атрибутах у этого комментария указывается,...

141
Отправка данных в БД из поля GUI

Отправка данных в БД из поля GUI

Подскажите, как сделать, чтобы после отправки данных, форма была снова пустой для следующей партии данных на отправку в БД

131
Как не загружать на страницу ответ сервера? Html <form target='''>

Как не загружать на страницу ответ сервера? Html <form target='''>

Отправляю из формы на сервер методом POST и возвращаемые данные(в моем случае просто HttpResponse('OK')) заменяют собой все содержимое страницыДелаю...

147
Attribute class not allowed on element span at this point

Attribute class not allowed on element span at this point

Валидатор выдаёт ошибку

134