首页 > 解决方案 > 子查询连接唯一ID来命名麻烦

问题描述

我有两张桌子有问题。我正在尝试查找在 2018 年分配了超过 3 名员工的飞行员的姓名。

出租车驾驶台

p_id  p_lname  p_fname  p_city  
043   Smith    John     Dayton
044   Doe      Jane     Cincinnati

分配表

p_id  AT_id   HireNo  AssignDate  City
043   BU78    1       11/29/2018  Dayton
044   BU89    2       11/29/2018  Akron

这只是我所拥有数据的一个简短示例。

我试过以下

select p_fname, p_lname
from taxiPilot tp
join assignment a on tp.p_id = a.p_id
where a.p_id IN (Select count(a.p_id)
from assignment
where AssignDate between "01/01/2018" and "12/31/2018"
group by a.p_id
having count(a.p_id) > 3);

这导致一个空白表

我期待得到以下

p_fname  p_lname  count(a.p_id)
Joe      Smith    5

标签: sqlgroup-bysubquerymysql-workbench

解决方案


你想做什么?:

    Select count(a.p_id)
from assignment
where AssignDate between "01/01/2018" and "12/31/2018"
group by a.p_id
having count(a.p_id) > 3

这将返回一个数字(因为计数),但不会与分配的 ID 匹配。


推荐阅读