如何从第一个表返回SQL Join中的行数

时间:2017-01-04 08:44:24

标签: mysql join

我有一张评论表:

enter image description here

另一张表是评论:

enter image description here

我想显示公司,城市,州,国家和私人= 0匹配的所有评论数据(来自评论表的平均值)。

我试过了:

SELECT c.* , p.avg FROM comments c,review p WHERE c.`username`=p.`username` AND c.`company`='10x Technology' AND c.`city`='Libertyville' AND c.`state`='IL' AND c.`country`='USA' AND private=0

我得到以下输出:

enter image description here

但这是错误的,因为只有1个测试评论。

有没有办法显示匹配的相同数量的评论而不重复

它显示了来自两个表的总行数,我想要从注释表中获得相同的行。

希望我做的很容易理解。

谢谢!

2 个答案:

答案 0 :(得分:0)

您正尝试从表格评论中选择一条记录。但你也试图从表格评论中获得等位记录。表评论包含用户名'WWW'5记录。因此,您将了解SQL-Statment 5记录。如果您只想从表格评论中获取一条记录,而只想从表格评论中获取平均值,请尝试使用此代码。

SELECT c.* , 
(select p.avg FROM review p 
where 
p.`username`= c.`username` AND 
p.`company`= c.`company` AND 
p.`city`= c.`city` AND 
p.`state`= c.`state` AND 
p.`country`= c.`country` LIMIT 1) AS avg

FROM comments c

WHERE 
c.private=0

请记住,您在表格审核中有多个匹配!!!

答案 1 :(得分:0)

我猜你想要查看最后一行,所以这样的事情可能会发生(-note如果你提供的数据是文本而不是图像我会根据你的数据提供解决方案)

foreach(Employee emp in employeeList)
{
     Console.WriteLine(emp.Name);
}