如何在MYSQL中编写多表级搜索的查询

如何在MYSQL中编写多表级搜索的查询,mysql,sql,Mysql,Sql,我需要从多个表中搜索和获取数据。如果我搜索为“A”,它应该从所有表列中考虑,并给出结果。 在查询中,我需要以下字段 emp_name, emp_age, emp_bank_account, emp_bank_name, emp_nominee_name, emp_nominee_relation 我的表及其字段如下所示 具有字段(emp\U id、emp\U姓名、emp\U年龄)的员工 带字段的EmployeeBankDetails(emp_银行账户、emp_银行名称、emp_id) 带字段

我需要从多个表中搜索和获取数据。如果我搜索为“A”,它应该从所有表列中考虑,并给出结果。

在查询中,我需要以下字段

emp_name, emp_age, emp_bank_account, emp_bank_name, emp_nominee_name, emp_nominee_relation
我的表及其字段如下所示

  • 具有字段(emp\U id、emp\U姓名、emp\U年龄)的员工
  • 带字段的EmployeeBankDetails(emp_银行账户、emp_银行名称、emp_id)
  • 带字段的员工姓名(emp_被提名人姓名、emp_被提名人关系、emp_id)

请提供帮助并感谢您的建议

您可以编写查询,但这不是最好的做法。使用许多or和开头通配符是性能的杀手())。但是如果您不关心性能和实践,或者查询是为了您的理解,那么就来吧

SELECT T1.emp_id,T1.emp_name,T1.age,T2.emp_bank_account,T2.emp_bank_name,T3.emp_nominee_name,T3.emp_nominee_relation
FROM Employee T1 
INNER JOIN EmployeeBankDetails T2 ON T1.emp_id=T2.emp_id
INNER JOIN EmployeeNominee  T3 ON T1.emp_id=T3.emp_id 
WHERE T1.emp_id LIKE '%A%' OR T1.emp_name LIKE '%A%' OR T1.age LIKE '%A%' OR T2.emp_bank_account LIKE '%A%' OR T2.emp_bank_name LIKE '%A%' OR T3.emp_nominee_name LIKE '%A%' OR T3.emp_nominee_relation LIKE '%A%';

希望这是您想要的。

是的,物品数量非常少。所以很好。