MySQL - 加入2个表和组值

时间:2011-08-03 07:29:13

标签: mysql sql join

我在这里得到了一些很好的帮助,有一些像这样的棘手的东西,所以我想让你们看看,看看这是否可能。

我在MySQL中有两个表..公司和资源......

公司可以有多种资源..所以......

company
--------
companyId (primary/auto inc)
companyName

resources
---------
resourceId (primary/auto inc)
companyId
resourceName

我想查询这两个表并将其分组,以便结果看起来像这样......

示例...

Company Name
 ResourceName1
 ResourceName2
 ResourceName3
Company Name
 Resource Name4
 Resource Name5
Company Name3
 Resource Name6

等。

希望有意义..非常感谢任何帮助。

更新

好的,以帮助澄清这一点......

我需要拉出公司表中的每个公司,然后使用该companyId,使用它来拉动资源表中的每个资源与同一个companyId ......

所以列表看起来像这样......

Bob's Plumbing (aka Company name)
  Bob the Plumber (has CompanyId of Bob's Plumbing)
  Bob's Assistant (has CompanyId of Bob's Plumbing)
Joe's Roofing (aka Company name)
  Joe the Roofer (has CompanyId of Joe's Roofing)
等等......等等。

希望能够解决一些困惑。

2 个答案:

答案 0 :(得分:2)

我会建议这个查询 -

<强>编辑

SELECT
  c.companyName,
  GROUP_CONCAT(CONCAT(r.resourceName, ' ', r.resourceFirstname, ' ', r.resourceLastname) SEPARATOR '\r\n')
FROM
  company c
JOIN
  resources r
    ON c.companyId = r.companyId
GROUP BY
  c.companyId;

请注意,公司名称及其资源将在一行中。

答案 1 :(得分:0)

select companyName,GROUP_CONCAT(resourceName) from company,resources where company.companyId=resources.companyId;