首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用单个查询获取多个表列的和

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

Stack Overflow用户
提问于 2015-03-25 09:40:55
回答 2查看 52关注 0票数 0

我有一个主桌和它的子表hotel_foodhotel_extrashotel_room和参考Id 酒店

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

现在我就这样用了

代码语言:javascript
复制
$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

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-25 09:50:19

您可以使用这样的子查询:

代码语言:javascript
复制
$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.'");
票数 1
EN

Stack Overflow用户

发布于 2015-03-25 09:44:44

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29252080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档