mysql - 如何在 MYSQL 中为多表级搜索编写查询
问题描述
我需要从多个表中搜索和获取数据。如果我搜索为“A”,它应该从所有表列中考虑,并给出结果。
在查询中,我需要以下字段
emp_name, emp_age, emp_bank_account, emp_bank_name, emp_nominee_name, emp_nominee_relation
我的表格及其字段如下
- 具有字段的员工(emp_id、emp_name、emp_age)
- EmployeeBankDetails 字段(emp_bank_account、emp_bank_name、emp_id)
- EmployeeNominee 字段(emp_nominee_name、emp_nominee_relation、emp_id)
请帮助并感谢您的建议
解决方案
您可以编写查询,但这不是最佳实践。使用许多 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%';
希望这是你想要的。
推荐阅读
- kotlin - 遍历一个集合并只打印一条消息,而不是为集合中的每个项目打印一条消息
- flutter - 我有一个要在多条路线中使用的小部件。我需要这个小部件来使用不同的自定义类实例,具体取决于它是哪个路由
- python - 如何在 Plotly 中将一个月内的所有数据组合成一个代表一个月的列?
- javascript - npm 错误!enoent ENOENT:没有这样的文件或目录,renD:\E-commerceJs\frontend\node_modules\.axios.DELETE'
- python - Python 项目设置
- python - Python 请求 - 如何获得更短版本的 html 页面?
- python - 尝试删除时间和更改日期格式时解析错误?
- node.js - Node JS:有没有办法在 svg 模板中注入数据并从中生成 pdf?
- python - 数据框未显示整个表格
- javascript - 当 JS 包损坏时也会发生这种情况