我在我的数据库中有2个表。一个名为data
,另一个名为changes
。MySQL Distinct和LEFT JOIN返回重复
表的列是
Data
------------
|id | name |
|-----------
|1 | Test |
|2 | Hello|
------------
changes
------------------------------------
|id | name | related_id | Comments |
|-----------------------------------
|1 | Test | 1 | Example |
|2 | Hello| 2 | Example2 |
|3 | Hello| 2 | Example3 |
------------------------------------
正如你所看到的,changes
。 related_id
是data
的外键。 id
。 changes
可以有多行相同的name
和related_id
以及不同的注释。
运行此查询后,我意识到多行返回,例如,Hello
可以出现2次。
SELECT DISTINCT data.name, changes.comments FROM data LEFT JOIN changes ON data.id = changes.related_id
Result
--------------------
|name | comments |
|-------------------
|Hello | Example2 |
|Hello | Example3 |
--------------------
如何去确保只返回1行?我走过去寻找答案,许多人说使用DISTINCT
,但它不适用于我的情况。
在此先感谢。
你得到2个不同的记录返回。应该返回哪个评论,为什么? –
可以返回任何记录。我只想要一个具有任何相关数据的独特'名称'。那可能吗? – user2301818
如果您只需要'name',那么只需选择'name':'SELECT DISTINCT data.name FROM data ...'但是如果用户有多个参数,那么您甚至不需要'join' –