表关系图像在此链接中http://www.serofero.net/mvb-table-relation.png
我使用 php 作为服务器端编程语言,使用 MySQL 作为数据库。
问题描述
用户添加了一个新场地。一个场所可能有多种饮料、活动、特色等等。现在,我想要这样一个查询或魔术,以便我可以收集与每个场地相关的所有饮料、活动、功能、食物、样式、类型、event_options 和 space_requirements 以及它的场地_id、名称、描述、容量、min_rate、max_rate、位置(来自位置表)。我还需要抵消和限制结果,以便我可以在后端实现分页。但挑战在于限制应该限制场馆的数量,而不是其饮料、食物、风格等。
我也想在 php 数组中收集结果,如下所示:
$结果 = 数组(
0=> 数组(
"名称" => "场地 A",
"描述" => "场地 A 描述",
"容量" => "场地 A 容量",
"位置" => "场地 A 位置",
"饮料" => 数组('beverage1','beverage23','beverage7',...),
"事件" => 数组('event8','event17','event19','event4',...),
"特征" => 数组('features1',...),
“食物” => 数组(),
“样式” => 数组(),
"类型" => 数组('type7', 'type14', 'type23',...),
“事件选项” => 数组(),
“space_requirements” => 数组()
)
,
1=> 数组(
"名称" => "场地 B",
"描述" => "场地 B 描述",
"容量" => "场地 B 容量",
"位置" => "场地 B 位置",
“饮料” => 数组('beverage1'),
"事件" => 数组('event2','event7','event9','event4',...),
“特征” => 数组(),
“食物” => 数组(),
"样式" => 数组('style1', 'style2',...),
“类型” => 数组('type47','type4','type3',...),
“事件选项” => 数组(),
“space_requirements” => 数组()
)
);
今天是第五天,我试图找出解决方案,但我一直都失败了。下面是到目前为止我可以编写的 MySQL Query 的片段。
选择 v.name、e.event、t.type、s.style
从场地 v
左加入venue_events ve ON v.venue_id = ve.venue_id
LEFT JOIN 事件 e ON e.event_id = ve.event_id
左加入venue_types vt ON v.venue_id = vt.venue_id
左连接类型 t ON t.type_id = vt.type_id
左加入venue_styles vs ON v.venue_id = vs.venue_id
LEFT JOIN 样式 s ON s.style_id = vs.style_id
WHERE v.venue_id IN(从场地中选择场地 ID)限制 0,5
/* 我想限制“场地”的数量,但 LIMIT 0,5 限制了“场地”拥有的“事件”、“类型”、“样式”的数量。这是主要问题。
我也试过:
WHERE v.venue_id IN (SELECT avenue_id FROM places LIMIT 0,5) 但它会引发 MySQL 错误。
*/
但我不知道下一步该怎么做才能得到上面提到的结果。
请帮我。
谢谢你。