我想这个查询是一个基本的,我应该知道更多关于SQL,但没有做很多与连接,但我认为这是解决方案。如何合并2个SQL表中的行而不重复行?
我所拥有的是一张人们的桌子和他们所拥有的工作角色表。一个人可以有多个工作,我希望有一组结果,每个人包含他们的详细信息和工作角色。
两个示例表(people和job_roles)在下面,因此您可以更容易地理解问题。
人民
id | name | email_address | phone_number 1 | paul | [email protected] | 123456 2 | bob | [email protected] | 567891 3 | bart | [email protected] | 987561
job_roles
id | person_id | job_title | department 1 | 1 | secretary | hr 2 | 1 | assistant | media 3 | 2 | manager | IT 4 | 3 | finance clerk | finance 4 | 3 | manager | IT
让我可以输出的每个人,像这样的
Name: paul Email Address: [email protected] Phone: 123456 Job Roles: Secretary for HR department Assistant for media department _______ Name: bob Email address: [email protected] Phone: 567891 Job roles: Manager for IT department
自己的角色所以,我怎么会得到每个人的信息(从人员表格)和他们的工作细节(从job_roles表格)输出到上面的例子。我想这可能是某种将他们的工作和相关部门合并成一个可以分割输出的工作列的方式,但也许有更好的方法,sql会是什么样子?
感谢
保罗
PS这将是一个MySQL数据库,如果有什么差别
感谢这是我最终使用的,它运作良好。 – AdrenalineJunky 2010-07-22 08:21:51
这是非常聪明和方便的知道,但我仍然喜欢在PHP中进行正常的连接和格式化数据。如果您想要更改格式(例如,在作业角色之间添加
),您必须修改SQL查询。 GROUP_CONCAT删除了数据库逻辑和表示的分离。这也使得单元测试更加困难。 – dave1010 2010-07-27 12:20:40