我有一张主表:图像和投票。
投票包含2个字段:Id,image_id
我想要做的是查询图像表并按照投票表中的投票数量返回它们。
目前:
$stmt = $conn->prepare(
'SELECT *
FROM images
LIMIT 10'
);
我理解基本的左连接,但不能想到如何通过计票来命令它们。只需要一个开始的例子。
由于
答案 0 :(得分:1)
假设您的VOTES表格中的每一行都意味着对图片投了一票,这应该有效: SQL DEMO
SELECT *, COUNT(v.image_id)
FROM images AS i
LEFT JOIN votes AS v ON i.id=v.image_id
GROUP BY i.id
ORDER BY v.image_id desc
答案 1 :(得分:0)
drop table if exists t1;
create table t1 (id int);
insert into t1 values (1), (2), (3);
drop table if exists t2;
create table t2 (id int, img_id int);
insert into t2 values (1, 1), (2, 1), (3, 2), (4,1), (5,3), (6,2);
select *
from t1
left join
(select img_id, count(*) count
from t2
group by img_id) c
on img_id=t1.id
order by count