【发布时间】:2014-05-07 15:38:25
【问题描述】:
我有几张这样的表:
部门
dept_no char(4) 主键
dept_name varchar(40) 唯一
dept_emp
emp_no int 主键
dept_no char(4) 主键
from_date 日期到日期
部门经理
dept_no char(4) 主键
emp_no int 主键
from_date 日期
to_date 日期
员工
emp_no int 主键
first_name varchar(14)
last_name varchar(16)
现在我有:
select employees.emp_no, employees.first_name,employees.last_name,
departments.dept_name, (select employees.first_name
from employees where dept_manager.emp_no =employees.emp_no )
from employees,dept_emp ,departments,dept_manager
where (employees.emp_no=dept_emp.emp_no) AND
(dept_emp.dept_no = departments.dept_no)
LIMIT 300;
第二个选择是打印每个员工的经理姓名。
但是当我尝试打印经理的姓氏时,它会引发错误。
select employees.emp_no, employees.first_name,employees.last_name,
departments.dept_name, (select employees.first_name, **employess.last_name**
from employees where dept_manager.emp_no =employees.emp_no )
from employees,dept_emp ,departments,dept_manager
where (employees.emp_no=dept_emp.emp_no) AND
(dept_emp.dept_no = departments.dept_no)
LIMIT 300;
错误 1241 (21000):操作数应包含 1 列
为什么会出现这个错误?
【问题讨论】:
-
代替子查询尝试加入员工和子查询的记录集。
-
@Trinity:我无法用连接来编写它。只是一个初学者。如果您发布查询,将对我有所帮助。
标签: mysql