我有两个表,一个是user
,另一个是images
。我为用户提供了选择多个图像的选项。我可以在数据库中存储具有相同 user_id
的多个图像,但是当我尝试从每个用户获取一张图像时,我会获取所有图像。
我的查询是这样的:
$query = "
SELECT *
FROM images i
JOIN users u
ON u.user_id = i.user_id
LIMIT 1";
当我在 while()
循环中运行此查询时,我只从 images
表中获取第一个图像。
如果我无法澄清我想问的问题,我真的很抱歉。
最佳答案
你有没有尝试过这样的事情:
SELECT * FROM users u INNER JOIN images i ON u.user_id = i.user_id GROUP BY u.user_id;
对于每个拥有图像的用户,这应该只从用户/图像表中返回一条记录。
不要在 while 循环中运行查询。相反,使用一个查询即可获取所有所需的记录。
如果您坚持在循环中运行查询,那么您的查询中会缺少 WHERE users.user_id = ?
部分,因此您可以为循环中的每个用户获得不同的结果。
关于php - 如何使用 INNER JOIN 为每个用户获取 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43627275/