Mysql 有没有一种方法可以使查询包含与另一行关联的所有行?

Mysql 有没有一种方法可以使查询包含与另一行关联的所有行?,mysql,sql,database,database-design,database-schema,Mysql,Sql,Database,Database Design,Database Schema,这是我的表格的简化版本: 图像 投票 如您所见,有4张选票与图像#1关联 我目前拥有以下代码: SELECT images.*, votes.* FROM images LEFT JOIN votes ON images.image_id = votes.vote_id GROUP BY images.image_id; 这基本上是返回每一张图片,以及这些图片的投票次数。然而,这是我们想要的行动。。。它只返回一张选票,不返回与图像关联的所有选票 为什么我需要所有投票?在我

这是我的表格的简化版本:

图像 投票 如您所见,有4张选票与图像#1关联

我目前拥有以下代码:

SELECT images.*, votes.*
FROM images
LEFT JOIN votes
ON images.image_id = votes.vote_id           
GROUP BY images.image_id;
这基本上是返回每一张图片,以及这些图片的投票次数。然而,这是我们想要的行动。。。它只返回一张选票,不返回与图像关联的所有选票

为什么我需要所有投票?在我的循环中,我想检查用户是否已经对图像投票,如果他已经投票,则不显示投票按钮。由于我的查询只返回与图像相关联的多个投票中的一个,所以我无法知道其他用户已经投票了

是否有办法使查询保留与图像关联的所有投票,而只返回一张图像?


谢谢,我希望这是有意义的。

您可以根据
用户id

SELECT images.*, votes.*
FROM images
LEFT JOIN votes
ON images.image_id = votes.image_id  AND votes.`user_id`=1 ; 
然后从查询中获取结果,检查用户id是否为空,然后显示按钮,否则不显示


您可以使用
group\u concat()
,返回列表中投票的所有用户ID:


你提到桌子、图片和投票。。。但是您的查询引用表添加时间和添加投票?@DigitalChris,我的错。我改了。我的错误。请检查您的
状况。不应该是投票。image\u id
?请根据您的样本数据提供所需的输出。此查询有效吗?您正在选择所有列(图像。*,投票。*)并按分组-这应该是一个语法错误。这是一个新问题。非常感谢。如何检查用户id是否存在于组目录中?如果可能的话,你能指导我使用PHP的正确方法吗?不用担心,我用自己的方式通过爆炸找到了答案,谢谢!
SELECT images.*, votes.*
FROM images
LEFT JOIN votes
ON images.image_id = votes.vote_id           
GROUP BY images.image_id;
SELECT images.*, votes.*
FROM images
LEFT JOIN votes
ON images.image_id = votes.image_id  AND votes.`user_id`=1 ; 
if(userid is null){
your vote button
}else{
already voted
}
SELECT i.*, group_concat(v.user_id)
FROM images i LEFT JOIN
     votes v
     ON i.image_id = v.vote_id           
GROUP BY i.image_id;