繁体   English   中英

MySQL 内部连接条件的更好方法

[英]Better approach for MySQL inner join with condition

我们有两个表,一个是具有列idnameemp表。 另一个表是具有列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';

有没有更好的方法来处理这个问题? 嵌套查询? 工会之类的?

加入是执行此操作的推荐方式。
您可以使用查询来检索列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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM