表关系图像在此链接中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 错误。 */
但我不知道下一步该怎么做才能得到上面提到的结果。
请帮我。
谢谢你。