我正在学习并坚持关于加入查询的特定问题。 问题是: 使用联接查询显示所有员工的姓氏,工作和受教育程度,这些员工至少具有职位描述为“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'作为工作描述。
答案 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。我花了很长时间才得到答案,谢谢你们的帮助。
如果答案写得很差或者说有什么问题,请给我任何有关如何改进的建议。