我有两个表,一个存储一些数据,如name
,sex
等。结束与第一个表的images
相关的存储id
的秒数。
我需要获取第一个表的行并获取第二个表中的所有图像,我希望通过单个查询获取它们。
我该怎么做?可能吗?
我尝试使用simple join
,但我只得到了第二个表的第一个元素。
示例表1:
----------------------
|ID | Name | Sex |
----------------------
| 1 | Chris | Male |
----------------------
| 2 | Elisa | Female |
----------------------
表2:
------------------------------
| ID | User_id | Image name |
------------------------------
| 1 | 1 | img1.jpg |
------------------------------
| 2 | 1 | img2.jpg |
------------------------------
| 3 | 1 | img3.jpg |
------------------------------
| 4 | 2 | img4.jpg |
------------------------------
我想:
Chris,男,img1.jpg,img2.jpg,img3.jpg
Elisa,女,img4.jpg
等等......有什么建议吗?
答案 0 :(得分:0)
尝试使用左外连接
SELECT user.*, image.image_name as image
FROM user
LEFT OUTER JOIN image
ON user.id = image.user_id
如果没有找到,它将获取所有用户行并将empty
val放入图像中。
答案 1 :(得分:0)
SELECT
table1.*,
GROUP_CONCAT(table2.image_name SEPARATOR ', ') as image_name
FROM table1
LEFT JOIN table2
ON table1.id = table2.user_id
GROUP BY table1.id;
演示:SQL Fiddle