从计数结果中显示其他表中的新字段

时间:2014-03-05 03:08:47

标签: sql

我在查询中遇到问题。我想显示一个字段,其中包含来自其他表上的计数的结果。很难解释,但我希望你能帮助我 所以我想要的结果是:

select id, name, car from tbl_people,tbl_vehicle

'car'字段是来自车辆表中的计数(车辆)的结果,该表中的字段是id和车辆。车辆领域包含(前)汽车,自行车,摩托车,(任何其他车辆) 我想要的结果就像:

id | name  |  car  
-----------------
01 | john  |  3 (example)

感谢您的关注

2 个答案:

答案 0 :(得分:0)

通常你最终得到一个子查询。不确定您的ID,但是:

select p.id, p.name, p.cnt 
from tbl_people p
inner join
   (select personid, count(1) as Cnt
   from tbl_vehicle
   where vehicle_name = 'Car'
   group by personid) v
on v.personid = p.id
order by p.name

答案 1 :(得分:0)

你也可以试试这个:

select t1.id, t1.DeptID, count(t2.DeptId) as count 
from t1 join t2 on t1.DeptID=t2.DeptId group by t2.DeptId;

将t1和t2替换为相应的表名和具有相应列名的列。如果你想要一个where子句,你可以在group by子句之前添加它,如:

select t1.id, t1.DeptID, count(t2.DeptId) as count 
from t1 join t2 on t1.DeptID=t2.DeptId and t2.Name like '%a%'
group by t2.DeptId;

工作小提琴here

提示:设t1为tbl_people,t2为tbl_vehicle。连接将在ids上,并且count(t2.DeptId)可以替换为tbl_vehicle.ID(如果重复或tbl_vehicle.pId),t2.Name可以替换为tbl_vehicle.Name