有条件的MySQL内部联接的更好方法

时间:2019-11-10 06:19:29

标签: mysql

我们有两个表,一个是emp表,具有列idname。另一个表是具有列iddesignation的Designation。

  

我想检索名称以字母“ A”开头的所有员工的emp.idemp.nameDesignation.designation

我写了以下MySQL查询

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';

有没有更好的方法来解决这个问题?嵌套查询?工会这样的东西?

1 个答案:

答案 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%'