gpt4 book ai didi

mysql - 省略重复字段,但不省略 mysql 结果集中的行

转载 作者:行者123 更新时间:2023-11-30 00:22:46 25 4
gpt4 key购买 nike

我应该如何更改以下 MySql 查询...

select o.name, e.name, c.phone from organization o, employee e, contact c

产生这个...

Organization  | Employee   | Contact Number
--------------+-------------+-----------------
Acme Cement | John Doe | 555-1234
Acme Cement | Jane Plain | 555-1212
Acme Cement | Bob knob | 555-1111
Hack IT | Mike Smith | 444-2343
Hack IT | Ed Snowdon | 444-4444

这样它就会返回这个...

Organization  | Employee   | Contact Number
--------------+-------------+-----------------
Acme Cement | John Doe | 555-1234
| Jane Plain | 555-1212
| Bob knob | 555-1111
Hack IT | Mike Smith | 444-2343
| Ed Snowdon | 444-4444

最佳答案

使用 MySQL 无法获得您想要的结果集。查询结果的行中始终包含 o.name。

但是,如果您使用 GROUP BY 和 GROUP_CONCAT那么也许你会发现处理结果更容易:

SELECT o.name, GROUP_CONCAT(e.name), GROUP_CONCAT(c.phone)
FROM organization o
LEFT JOIN employee e ON e.orgid = o.id
LEFT JOIN contact c ON c.empid = e.id
GROUP BY o.name

您的结果将是:

| Organization | Employee                       | Contact Number             |
|--------------+--------------------------------+----------------------------|
| Acme Cement | John Doe,Jane Plain,Bob knob | 555-1234,555-1212,555-1111 |
| Hack IT | Mike Smith,Ed Snowdon | 444-2343,444-4444 |

现在,结果不再隐藏连续行的 o.name,而是每个组织一行,其他列是相关数据的逗号列表。如果您愿意,该函数允许您使用逗号以外的分隔符。

关于mysql - 省略重复字段,但不省略 mysql 结果集中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23098037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com