У меня есть две таблицы в моей базе данных. Один по имени 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 |
--------------------
Как я могу идти о том, чтобы убедиться, что только одна строка возвращается? Я пошел так, чтобы искать ответы, и многие заявили, используя DISTINCT
, но это не работает в моем случае.
Заранее спасибо.
Вы получаете две разные записи. Какой комментарий должен быть возвращен и почему? –
Любые записи могут быть возвращены. Мне нужно только уникальное имя с любыми связанными данными. Это возможно? – user2301818
Если вам нужно только «имя», то выберите только «имя»: 'SELECT DISTINCT data.name FROM data ...' Но тогда вам даже не нужно «join» –