【问题标题】:How I can merge repeated rows in MySQL?如何在 MySQL 中合并重复的行?
【发布时间】:2015-04-13 00:45:13
【问题描述】:

我正在做一个项目,每个组织都有障碍,每个组织可以包含一个或多个障碍,然后我需要生成一个 XML 文件来显示组织中的每个障碍。

但是执行这个sql代码:

SELECT organizations.*, barriers.barrierName AS bname, barriers.type AS btype, geographs.name AS geo, rpd.rpdname AS rpdn, rpd.meaning AS rpdmean FROM organizations 
left join orgbarriers on orgbarriers.idOrg = organizations.id 
left join barriers on orgbarriers.idBarrier = barriers.id 
left join orggeographs on organizations.id = orggeographs.idOrg 
left join geographs on geographs.id = orggeographs.idGeo
left join orgrpds on orgrpds.idOrg = organizations.id
left join rpd on rpd.id = orgrpds.idRPD

我得到像这张图片一样的重复行:

【问题讨论】:

  • 当您在 SQL 中进行左连接时,您将在主表中的行中获得多个结果,这些行在连接表中有多个行。如果您仔细查看屏幕截图中的行,您会发现它们实际上具有不同的障碍,因此它们不是重复的,而是同一组织的障碍表中的不同行。
  • @theark40 谢谢!我该怎么做?我很困惑
  • @theark40 因为当我从 PHP 生成 XML 文件时,组织 2 被复制 :(
  • 由于您想从表格数据创建分层输出,您应该查看如下内容:stackoverflow.com/questions/29464314/…

标签: php mysql xml


【解决方案1】:

使用关键字“DISTINCT”

SELECT DISTINCT rest of your query

【讨论】:

  • 亲爱的,我在查询中添加了 DISTINCT 但这种方式只显示 1 行。我需要全部显示,但在 xml 文件中排序。
  • 奇怪:你想摆脱重复的行。 DISTINCT 做到了这一点。您是如何将其放入查询中的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 2023-03-05
  • 2012-09-25
  • 2022-01-02
  • 2021-11-23
  • 2020-07-24
相关资源
最近更新 更多