【问题标题】:MySQL: How do I add a string on row X2 with ID Y1 in column Z1 to row X1 with ID Y1 to column Z1?MySQL:如何在 Z1 列中将 ID 为 Y1 的 X2 行添加到 ID 为 Y1 的 X1 行到 Z1 列?
【发布时间】:2011-05-21 12:46:54
【问题描述】:
TABLE A
Row  IdA ValueA
1    1   ABCD
2    2   EFGH
3    3   IJKL

TABLE B
Row IdB ValueB
1   1   QWER
2   2   TYUI
3   3   OPAS

CONNECTOR X
Row  IdA  IdB
1     1    1
2     1    2
3     2    3

我希望输出显示:

OUTPUT
Value A --- ValueB(1), ValueB(2)
ABCD    --- QWER, TYUI

因此,基本上,每当连接器表的 IdA 列中有双峰时,这两个(或更多)条目都会合并值字段中的字符串以用于我的输出。

这对 MySQL 查询是否可行,或者我是否必须使用 PHP 数组对整个数据库进行排序?如果可能的话,我宁愿避免这种情况!

我查看了各种 JOIN 无济于事,并考虑使用 GROUP BY 和 COUNT(DISTINCT ...) 查询,但这似乎是一种非常不雅的方式。欢迎提出建议!

【问题讨论】:

    标签: mysql arrays sorting multiple-entries


    【解决方案1】:
    SELECT a.ValueA, GROUP_CONCAT( b.ValueB SEPARATOR ', ' ) AS ValuesB
    FROM connector c
    JOIN tblA a ON c.IdA = a.IdA
    JOIN tblB b ON c.IdB = b.IdB
    GROUP BY a.IdA
    

    会给你结果:

    +--------+------------+
    | ValueA | ValuesB    |
    +--------+------------+
    | ABCD   | QWER, TYUI |
    | EFGH   | OPAS       |
    +--------+------------+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多