【问题标题】:MySQL - Join 2 Tables and Group ValuesMySQL - 加入 2 个表和组值
【发布时间】:2011-08-03 07:29:13
【问题描述】:

我在这里得到了一些很好的帮助,解决了一些棘手的问题,所以我想让你们看看,看看这是否可能。

我在 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

等等。

希望这是有道理的。非常感谢任何帮助。

更新

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

我需要提取 company 表中的每个公司,然后使用该 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)

等等……等等……

希望这能消除一些困惑。

【问题讨论】:

    标签: mysql sql join


    【解决方案1】:

    我可以建议这个查询 -

    已编辑

    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;
    

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

    【讨论】:

    • 你能告诉我如何将它与资源表中的多个字段一起使用(即 r.resourceFirstname r.resourceLastname)
    • 是的,有可能。我已经修改了查询。
    【解决方案2】:
    select companyName,GROUP_CONCAT(resourceName) from company,resources where company.companyId=resources.companyId;
    

    【讨论】:

      猜你喜欢
      • 2013-10-30
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多