Mysql 选择在sql中出现N次的列的值
晚上好, 我想选择在表中正好出现N次的列的值。更具体地说,我有3张桌子Mysql 选择在sql中出现N次的列的值,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,晚上好, 我想选择在表中正好出现N次的列的值。更具体地说,我有3张桌子 employees dept_emp departments N=表部门的行数。我希望所有的emp编号(员工和部门emp)在表dept\U emp中正好出现N次。我试过这个 select e.emp_no, e.first_name, e.last_name from employees e, dept_emp de, departments d where e.emp_no=de.emp_no group by de.e
employees dept_emp departments
N=表部门的行数。我希望所有的emp编号(员工和部门emp)在表dept\U emp中正好出现N次。我试过这个
select e.emp_no, e.first_name, e.last_name
from employees e, dept_emp de, departments d
where e.emp_no=de.emp_no
group by de.emp_no
having count(de.emp_no)=count(d.dept_no);
但是不起作用。有什么想法吗?提前谢谢。我不完全确定您的要求,但这有帮助吗
select e.emp_no, e.first_name, e.last_name
from employees e, dept_emp de
where e.emp_no=de.emp_no
group by e.emp_no, e.first_name, e.last_name
having count(*) = (select count(*) from departments);
我想你错过了一个与部门的联接表。一旦你添加了它,那么我相信你的查询将返回作为部门唯一成员的所有员工:这就是你想要得到的吗?不要使用隐式连接语法你通常必须按你想要在选择列中的每一列分组,不管他们是否使行唯一。group by子句中唯一不需要的列是聚合函数中的那些列,如count(*)或max(column_name)等。非常有用。谢谢你,伙计!