Php 使用单个查询获取多个表列的总和

Php 使用单个查询获取多个表列的总和,php,mysqli,Php,Mysqli,我有一个主表hotel及其子表hotel\u food,hotel\u extras,hotel\u room,其参考Id为hotel 现在我想得到每个酒店的每个表中价格列的总和(hotel_food,hotel_extras,hotel_room) 现在我就这样用 $result = $db->query("SELECT id FROM hotel WHERE id = '.$hotel.'"); if($row = $result->fetch_array(MYSQLI_ASSO

我有一个主表hotel及其子表hotel\u foodhotel\u extrashotel\u room,其参考Id为hotel

现在我想得到每个酒店的每个表中价格列的总和(hotel_food,hotel_extras,hotel_room)

现在我就这样用

$result = $db->query("SELECT id FROM hotel WHERE id = '.$hotel.'");
if($row = $result->fetch_array(MYSQLI_ASSOC)) {
   $food_result = $db->query("SELECT sum(price) FROM hotel_food WHERE hotel_id = '".$row['id']."'");
   $room_result = $db->query("SELECT sum(price) FROM hotel_room WHERE hotel_id = '".$row['id']."'");
   $extras_result = $db->query("SELECT sum(price) FROM hotel_extras WHERE hotel_id = '".$row['id']."'");
}
是否有任何方法可以通过一个查询获得所有表价格的总和,如totalFoodPrice、totalRoomPrice、totalExtrasPrice


提前感谢

您可以使用如下子查询:

SELECT * FROM
(
 SELECT sum(price) AS totalFoodPrice FROM hotel_food WHERE hotel_id = 1,
 SELECT sum(price) AS totalRoomPrice FROM hotel_room WHERE hotel_id = 1,
 SELECT sum(price) AS totalExtrasPrice FROM hotel_extras WHERE hotel_id = 1
) temp
$result = $db->query("SELECT id, 
   (SELECT sum(price) FROM hotel_food WHERE hotel_id = h.id) TotalFoodPrice,
   (SELECT sum(price) FROM hotel_room WHERE hotel_id = h.id) TotalRoomPrice,
   (SELECT sum(price) FROM hotel_extras WHERE hotel_id = h.id) TotalExtraPrice
FROM hotel h WHERE id = '.$hotel.'");