[英]How to get all images which belongs to user in one “loop”
我有两个名为users和images的mysql表。 每个用户最多可以有5张图片。 在页面中,我显示用户信息和所有图像。 当我这样查询
SELECT
SQL_CALC_FOUND_ROWS,
u.username,
u.gender,
u.etc
.........
i.picture
FROM users u
LEFT JOIN images i on u.id = i.id
WHERE
some_condition
结果是重复每个图像的用户信息。 例如
怎么做的结果是用户信息与属于他的所有图像?
例如:
用户名
年龄
性别
pic1,pic2,pic3
等等
我建议你运行两个查询,一个用于用户,第二个用于每个用户图片。 试图在一个查询中获取它并以您想要的方式构造它是复杂的。
$rowset = array(); // your fetched data
$user = $rowset[0];
unset($user['picture']);
$user['pictures'] = array();
foreach ( $rowset as $row ) {
$user['pictures'][] = $row['picture'];
}
你可以使用mysql的group_concat。
SELECT SQL_CALC_FOUND_ROWS,
u.username,
u.gender,
u.etc,
...
GROUP_CONCAT(i.picture SEPARATOR ",") AS pictures
FROM users u
LEFT JOIN images i on u.id = i.id
WHERE
some_condition
GROUP BY u.id
我现在还没有测试过,但我认为我的记忆并没有失败。 您将在“图片”列中以逗号分隔所有图片。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.