Строка запроса в MySQL с дублированной строкой

0

Я использую mysql для своего проекта. У меня две таблицы: user и img. И это схема для них.

User
id: int (AI)
username: varchar(50)
password: varchar(50)

Img
id: int (AI)
user_id: int
path: varchar(100)

Я знаю, что mysql не поддерживает такой массив, как nosql, поэтому я должен использовать две таблицы для хранения нескольких изображений на одного пользователя.

Пропозиция: когда я получаю всех пользователей с их изображением, он дублирует данные, запрос выглядит так:

SELECT u.*, i.path FROM user u INNER JOIN img i ON u.id=i.user_id ORDER BY u.id DESC

Я знаю причину, но я не могу ее решить, данные должны быть такими

Пользователь || Img

5 || 897696987.jpg, Jghd8867D.jpg

8 || 8768788Kd.jpg

Но это шоу:

Пользователь || Img

5 || 897696987.jpg

5 || Jghd8867D.jpg

8 || 8768788Kd.jpg

Как я могу сделать это лучше? Спасибо!

  • 0
    Это правильное отображение. Какова проблема с данными ответа?
  • 0
    Потому что я отвечаю на данные клиента так: obj{id:5, username: "test", img: [{id: 1, path: sss.jpg,{id: 2, path: aaa.jpg}}] }
Показать ещё 4 комментария
Теги:

1 ответ

1
Лучший ответ

Попробуй это

SELECT u.*, GROUP_CONCAT(i.path) as i.path FROM user u INNER JOIN img i ON u.id=i.user_id GROUP BY u.id ORDER BY u.id DESC 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню