[英]Better approach for MySQL inner join with condition
我们有两个表,一个是具有列id
和name
的emp
表。 另一个表是具有列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';
有没有更好的方法来处理这个问题? 嵌套查询? 工会之类的?
加入是执行此操作的推荐方式。
您可以使用查询来检索列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%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.