我有两个名为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
等
答案 0 :(得分:2)
我建议您运行两个查询,一个用于用户,另一个用于每个用户图片。试图在一个查询中获取它并以您想要的方式构建它是复杂的。
答案 1 :(得分:0)
$rowset = array(); // your fetched data
$user = $rowset[0];
unset($user['picture']);
$user['pictures'] = array();
foreach ( $rowset as $row ) {
$user['pictures'][] = $row['picture'];
}
答案 2 :(得分:0)
你可以使用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
我现在还没有测试过,但我认为我的记忆并没有失败。您将在“图片”栏中以逗号分隔所有图片。