![](/img/trans.png)
[英]MySQL query - single row in one table with multiple rows in another table
[英]MYSQL Single query to retrieve both single row from one table and many rows as a single field from another
我怀疑想出这个问题的标题有多困难,我想知道的是不可能的,根本不可能。 但是我绝不是mysql专家,所以这里是。
我目前正在重写我要维护的应用程序。 本质上,这是一个预订房间的事件管理系统。 单个事件通常会有多个与之关联的房间。
在整个应用程序的不同部分中,必须列出一个事件表,其中包括一列房间以及其他事件信息,这在整个应用程序中是很常见的。
目前,应用程序将房间存储为以逗号分隔的ID号列表,例如ID。 1,5,7我想对此进行归一化处理,以帮助当前由于这种安排而困难的其他查询。
因此,我已使用另一个名为event_rooms的表将房间与事件表分开。 该表包括
id
event_id
room_id
而且,我将每个事件所在的房间放到该表的多行中。这解决了应用程序中的许多问题,理想情况下,我希望保持这种状态。
因此,要解决这个问题,我想算出一个查询是否可以获取事件表行以及事件所在的所有房间? 为了让我创建包含事件列表的事件表。
事件表很简单,基本上
-id
-event_name
-event_date
-notes
这可能吗 ? 还是我必须执行多个查询(我希望避免在一个页面上包含100多个事件,因为这意味着每页101个查询+)。
还是我可能没有考虑过更好的总体设计选择? 我正在使用PHP,以防您的想法涉及应用程序代码。
我做了一个SQL Fiddle,我认为它可以解决您的要求: http : //sqlfiddle.com/#!2/71c8d/4
有两个查询:
但是正如Strawberry所评论的那样,在任何基本的mysql教程中都会介绍这一点,我建议将http://www.w3schools.com/sql/作为一个好的起点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.