我们有两个表,一个是emp
表,具有列id
和name
。另一个表是具有列id
和designation
的Designation。
我想检索名称以字母“ A”开头的所有员工的
emp.id
,emp.name
,Designation.designation
;
select emp.name,emp.id,d.designation from
emp e inner join Designation d on e.id = d.id
where Left(e.name,1) = 'A';
有没有更好的方法来解决这个问题?嵌套查询?工会这样的东西?
答案 0 :(得分:1)
推荐使用join进行此操作。
您可以使用查询来检索列designation
:
select e.name, e.id,
(select d.designation from Designation d where e.id = d.id) designation
from emp e
where Left(e.name,1) = 'A';
仅当2个表具有1对1的关系时。
但是我不认为这是对效率或可读性的改进。
还有条件:
where Left(e.name,1) = 'A'
可以用运算符LIKE
编写:
where e.name LIKE 'A%'