首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用两个表连接查询问题

用两个表连接查询问题
EN

Stack Overflow用户
提问于 2015-04-30 21:38:34
回答 3查看 39关注 0票数 2

首先,我甚至不知道如何调用该查询,但我敢打赌它是存在的。

我得到了一个包含事件的表,以及代表(Fix)人的数字,这些人将要去那个事件。好的,那么我有一个用户表,这些人都在那里,上面有事件的id。所以事件单元看起来像"1,5,22,47",人的身份。

问题是,我应该如何回应这个事件,每个人的名字?

活动:与爱德华、西蒙斯博士、沃克夫人的班级旅行

没有315345345次查询..。

表例:

事件:

  • 身份证,姓名,日期,人

用户:

  • id,姓名

就像:活动:

  • "1“、”班次“、”5月2日“、”1、2、5、6“
  • "2“、”博物馆参观“、”5月14日“、”5、6、8、1“

用户:

  • "1“、”爱德华“
  • "2",“Simons博士”
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-30 21:50:15

我不建议将事件和与会者列表之间的关系存储到一个列中。这是很糟糕的做法。

相反,我将使用第三个表来映射事件和与会者之间的关系。换句话说,使用外键创建一对多的关系(主-细节,父-子)。

Check out this post for more information regarding database design patterns.

使用一对多的表,您可以编写一个简单的SQL查询来获取所需的数据。类似于:

代码语言:javascript
复制
SELECT Attendee FROM Event_Attendees WHERE Event LIKE $eventName

这将返回特定事件的所有与会者的数组。当然,您需要使用mysqli或PDO准备好的语句。

这个Event_Attendees表基本上有两个主要列来建立这种关系:EventAttendee。我通常使用自动增量整数作为主键索引.

票数 1
EN

Stack Overflow用户

发布于 2015-04-30 21:58:22

创建第三个表UsersEvents (或类似的内容):

  • event_id
  • user_id,

然后添加行:

  • 1,1
  • 1,2
  • 1,5
  • 1,6

  • 2,5
  • 2,6
  • 2,8
  • 2,1

票数 2
EN

Stack Overflow用户

发布于 2015-04-30 21:57:35

您将需要为每一行创建一个函数,该函数将所有名称连接到一个字符串中,并按如下方式执行

从事件中选择EventId、EventName、udf_getPeople(EventId)

内部udf_getPeople

声明@everyone varchar(最大);

创建一个游标以获取与EventId顺序相关的人员

取每一行

将person字段连接到@everyone

当最后一个人遇到时关闭光标

把每个人都送回去

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29978242

复制
相关文章

相似问题

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