MySQL加入查询任务

时间:2015-11-24 13:47:35

标签: mysql

我正在学习并坚持关于加入查询的特定问题。 问题是: 使用联接查询显示所有员工的姓氏,工作和受教育程度,这些员工至少具有职位描述为“Pres”的员工的受教育程度。

这里的表格描述(该表名为Emp,所以DESC Emp;提出这个:)

+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| empno     | char(6)      | NO   | PRI |         |       |
| firstname | varchar(12)  | NO   |     | NULL    |       |
| midinit   | char(1)      | NO   |     | NULL    |       |
| lastname  | varchar(15)  | NO   |     | NULL    |       |
| workdept  | char(3)      | YES  | MUL | NULL    |       |
| phoneno   | char(4)      | YES  |     | NULL    |       |
| hiredate  | date         | YES  |     | NULL    |       |
| job       | char(10)     | YES  |     | NULL    |       |
| edlevel   | int(2)       | YES  |     | NULL    |       |
| sex       | char(1)      | YES  |     | NULL    |       |
| birthdate | date         | YES  |     | NULL    |       |
| salary    | decimal(8,2) | YES  |     | NULL    |       |
| bonus     | decimal(8,2) | YES  |     | NULL    |       |
| comm      | decimal(8,2) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

还有其他表格,但我认为这是唯一相关的表格。总共有5个问题,但这个问题是我似乎无法弄清楚的问题。请帮忙!

谢谢。

编辑:只是为了澄清,'职位描述'被称为“工作”的工作'在表中。 lastname和edlevel是不言自明的。

EDIT2:只有1名员工有'Pres'作为工作描述。

2 个答案:

答案 0 :(得分:0)

根据您的问题判断,我认为只有一名员工的名称为“Pres”,并且详细信息显示在Emp表的“工作”栏中。

我认为以下查询应该有效。

SELECT lastname,job,edlevel
FROM EMP
where edlevel >= (SELECT edlevel FROM EMP WHERE job='pres')

让我知道这是否有效!

答案 1 :(得分:0)

感谢@fancyPants和@AndrewBone,我提出了有效的答案,我认为满足了这个问题。

SELECT e.lastname, e.job, e.edlevel
FROM Emp e JOIN Emp compare ON compare.job='Pres'
WHERE e.edlevel >= compare.edlevel;

一旦答案在那里相当明显,但后见之明是20/20。我花了很长时间才得到答案,谢谢你们的帮助。

如果答案写得很差或者说有什么问题,请给我任何有关如何改进的建议。