2017-05-08 116 views
0

基本上我使用2张桌子,一个是汽车,一个是评论,我试图获得某些汽车的核准评论数+汽车信息,但我希望它是动态如果我直接放在汽车的id它会工作,但当我说,在哪里id =汽车id它没有返回什么?内部连接问题SQL

这个作品有“10”,它将给我的信息+评论

SELECT t1.biler_id, t1.biler_navn, COUNT(t2.bilbixen_commentary_status) 
FROM bilbixen_biler t1 
INNER JOIN bilbixen_commentary t2 ON t1.biler_id = t2.bilbixen_commentary_bil 
WHERE t1.biler_id = 10 

计数上面的查询将在phpMyAdmin返回此 enter image description here

下面的查询不工作,我试图告诉它找到所有t1.id都等于t2.id

SELECT t1.biler_id, t1.biler_navn, COUNT(t2.bilbixen_commentary_status) 
FROM bilbixen_biler t1 
INNER JOIN bilbixen_commentary t2 ON t1.biler_id = t2.bilbixen_commentary_bil 
WHERE t1.biler_id = t2.bilbixen_commentary_bil 

上面的查询会给我这个错误在phpmya DMIN enter image description here

我预计它与评论的次数返回的所有信息为每辆车为他们每个人的

回答

2

where子句是无用的,你,因为你正在使用的聚合函数count需要group by条款。

select t1.biler_id, 
    t1.biler_navn, 
    COUNT(t2.bilbixen_commentary_status) 
from bilbixen_biler t1 
left join bilbixen_commentary t2 on t1.biler_id = t2.bilbixen_commentary_bil 
group by t1.biler_id, 
    t1.biler_navn 
+0

这是更好,但我仍然需要从T1具有在T2 0条评论所有的记录,因为我会输出卡片上的“讲话泡泡与汽车有多少评论”,所以如果他们在t2没有评论,他们的数据都不会显示出来,所以基本没有人可以看到汽车,如果没有评论 –

+0

@ iiiml0sto1 - 然后做左边加入。更新。 – GurV

+0

哦,是的课程然后我不只是得到关系...需要咖啡,并感谢人:) –

0

您已通过t1.biler_id, t1.biler_navn领域使用的聚合函数COUNT所以你要组:

SELECT t1.biler_id, t1.biler_navn, COUNT(t2.bilbixen_commentary_status) 
FROM bilbixen_biler t1 
INNER JOIN bilbixen_commentary t2 ON t1.biler_id = t2.bilbixen_commentary_bil 
GROUP BY t1.biler_id, t1.biler_navn