sql - 如何在mysql中基于类似连接2个表

标签 sql mysql

我有 2 个表 Employee 和 Company_Employee。

员工: 身份证、名字

公司_员工: ID, Company_ID, Employee_ID

我想按名字搜索。我在想我的查询应该是这样的:

   select FirstName, ID from Employee where FirstName LIKE '%John%' and ID in (select id from Company_Employee)

此查询不返回任何行。有谁知道我如何使用这 2 个表通过 FirstName 获取带有 like 的行?

谢谢!

最佳答案

您的查询将 company_employee.id 与 employee.id 进行比较。它可能应该将 employee.id 与 company_employee.employee_id 进行比较。

您可以使用连接更清楚地重写查询:

select *
from employee e
join company_employee ce
    on e.id = ce.Employee_ID
where e.FirstName like '%John%'

关于sql - 如何在mysql中基于类似连接2个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674541/

相关文章:

sql - 如何在postgresql中选择具有更大值(value)的条目

php - 如何获取MySQL数据库表的最后一个id,并将其存储在变量中

sql - 要列出的缓存 SQL 列

php - 使用 AJAX 执行 SQL 查询并在成功执行后重定向

mysql - SQL 查询连接表并比较总和以返回最大值

mysql - 多次准备语句时的性能问题

mysql - 在 phpMyAdmin 中导入带有多边形数据的 CSV

sql - 如何在 PostgreSQL 中获取两个日期之间的月份数值?

c# - 使用 DataAccess (TELERIK OPEN ACCESS ORM) 在 c# 中将 SQL 语句转换为 LINQ

java - Hibernate HQL 中的 SQL 计数