我正在为我的项目使用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
我知道原因,但我无法解决,数据必须像这样
用户||图
5 || 897696987.jpg,Jghd8867D.jpg
8 || 8768788Kd.jpg
但是显示:
用户||图
5 || 897696987.jpg
5 || Jghd8867D.jpg
8 || 8768788Kd.jpg
我该怎样做才能让它变得更好? 谢谢!
答案 0 :(得分: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