gpt4 book ai didi

mysql - 我可以从两行中取出结果并将它们合并为一行吗?

转载 作者:行者123 更新时间:2023-11-29 05:00:38 25 4
gpt4 key购买 nike

我在 mysql 数据库中有 2 行数据。除了一列之外,两行都相同。我正在寻找的是一个查询,它将生成具有两个不同值的单行。有人可以帮帮我吗?

数据的一个例子是:

1    Administrator    Test    2009-08-17 03:57:35
1 Miller Test 2009-08-17 03:57:35

我需要的是:

1    Administrator    Miller    Test    2009-08-17 03:57:35

DISTINCT 不会给我。我需要将额外的列添加或附加到结果集。


这是我正在尝试使用的代码。

SELECT
t2.msg_id,
t3.lname AS sender,
t4.lname AS recipient
FROM
mail_message AS t1
Inner Join mailbox AS t2 ON t1.msg_seq = t2.msg_seq
Inner Join employee AS t3 ON t3.employee_id = t2.employee_id
INNER JOIN employee AS t4 ON t3.employee_id = t4.employee_id

最佳答案

当然。您可以JOIN 表到其自身的副本,使用类似这样的技术:

SELECT t1.*, t2.name
FROM the_table AS t1
INNER JOIN the_table AS t2 ON (t1.id = t2.id AND t1.test = t2.test AND t1.date_column = t2.date_column AND t1.name < t2.name)

这里我们任意命名表的一个副本 t1 和另一个 t2 并连接除了名称之外相同的行。

请注意,我不会简单地对 name 进行 != 测试,因为这会导致两个匹配的行:其中一个是 Administratort1 中,另一个 Administratort2 中。为了将一个相同的表与另一个区分开来,我断言 t1 将始终是具有“较小”(即按字母顺序排列较早)名称的表。

如果可以有三个或更多相同的行,这仍然有效,但会返回多个匹配项。例如,如果 ABC 都是其他相同行中的名称,您将得到:

A B
B C
A C

关于mysql - 我可以从两行中取出结果并将它们合并为一行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1290701/

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