gpt4 book ai didi

php - MySQL Distinct 和 LEFT JOIN 返回重复

转载 作者:IT王子 更新时间:2023-10-29 00:32:07 28 4
gpt4 key购买 nike

我的数据库中有 2 个表。一个名为 data,另一个名为 changes

表格的列是

数据

------------
|id | name |
|-----------
|1 | Test |
|2 | Hello|
------------

更改

------------------------------------
|id | name | related_id | Comments |
|-----------------------------------
|1 | Test | 1 | Example |
|2 | Hello| 2 | Example2 |
|3 | Hello| 2 | Example3 |
------------------------------------

如您所见,changes.related_iddata.id 的外键。changes 可以有多行相同的 namerelated_id 以及不同的评论。

运行此查询后,我意识到返回了多行,例如,Hello 可以出现 2 次。

SELECT DISTINCT data.name, changes.comments FROM data LEFT JOIN changes ON data.id = changes.related_id

结果

--------------------
|name | comments |
|-------------------
|Hello | Example2 |
|Hello | Example3 |
--------------------

如何确保只返回 1 行?我四处寻找答案,许多人使用 DISTINCT 进行陈述,但它在我的情况下不起作用。

提前致谢。

最佳答案

如果您希望 data 表中的每个名称只有一条记录,并且它可以是 any 记录,那么您可以按唯一列(name ) 并在另一列上使用聚合函数,例如 max()

SELECT data.name, max(changes.comments)
FROM data
LEFT JOIN changes ON data.id = changes.related_id
GROUP BY data.name

关于php - MySQL Distinct 和 LEFT JOIN 返回重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20934615/

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