首页 > 解决方案 > 如何在 MYSQL 中为多表级搜索编写查询

问题描述

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

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

emp_name, emp_age, emp_bank_account, emp_bank_name, emp_nominee_name, emp_nominee_relation

我的表格及其字段如下

请帮助并感谢您的建议

标签: mysqlsql

解决方案


您可以编写查询,但这不是最佳实践。使用许多 OR 和开头的通配符是性能杀手(https://dzone.com/articles/how-to-optimize-mysql-queries-for- speed-and-perfor ))。但是,如果您不关心性能和实践,或者如果查询是为了您的理解,那么您就可以了。

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

希望这是你想要的。


推荐阅读