我在 MySQL 数据库中有一个目录表,其中包含用户 ID、用户类型和各种其他目录信息。有两种类型的用户:employee和student。主键是(userID, userType),因此任何给定的用户都可以拥有一条employee记录和一条student记录(如果他们既是员工又是学生)。
我想对该表的一个子集执行查询,以便:
- 如果用户只有一个
employeexorstudent记录,则使用该记录,并且 - 如果用户同时拥有 an
employee和一条student记录,employee则使用该student记录并忽略该记录
我不需要ORDER BY在查询中包含子句,但它们可以包含相当复杂的WHERE子句(包括对userType自身的查询)。
理想情况下,我希望这样做而不必创建额外的表或视图,但如果需要额外的视图,我可以向系统管理员询问CREATE VIEW权限。