mysql - 在mysql中使用单个关键字从多个表中搜索

标签 mysql keyword

<分区>

我有3张 table

表 1- 用户:

_______________________
|uid   |   uname      |
|______|______________|
| 1    |  John99      |
| 2    |  Steve12     |
| 3    |  Smith_a     |
| 4    |  Robert.t    |
| 5    |  Williams.a  |
|______|______________|

表 2-名字:

 _____________________
 |eid   |   fname     |
 |______|_____________|
 |1     |   John      |
 |2     |   Steve     |
 |3     |   Williams  |
 |4     |   Thomas    |
 |5     |   James     |
 |______|_____________|

表 3 - 姓氏

 ____________________
 |eid   |   lname    |
 |______|____________|
 |1     |  Williams  |
 |2     |  George    |
 |3     |  Smith     |
 |4     |  Robert    |
 |5     |  Heart     |
 |___________________|

用户可以使用关键字“will”或“williams”进行搜索。我需要从以上所有 3 个表中搜索此关键字,并显示相应关键字的 uid、fname 和 lname。 示例:1.John Williams 3.威廉姆斯史密斯 5.詹姆斯之心

我试过 union 和 like '%will%' 但结果返回了重复项。有人可以帮我查询吗?

谢谢。

最佳答案

假设 eiduid 的外键,那么这样的事情应该有效:

select u.uid, f.fname, l.lname
from users u
  inner join firstname f on u.uid = f.eid
  inner join lastname l on u.uid = l.eid
where f.fname like '%will%' or
  l.lname like '%will%'

如果您还需要搜索 uname 字段,请使用另一个 or 语句将其添加到您的 where 条件中。

结果:

UID FNAME     LNAME
1   John      Williams
3   Williams  Smith

关于mysql - 在mysql中使用单个关键字从多个表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16925584/

相关文章:

mysql - 纸质表格到数据库

robotframework - 我可以在 robotframework 中使用关键字作为参数吗?

eclipse - 在 Eclipse 中突出显示带有关键字的行

mysql - 将一个 MySQL 文本内容表与另一个关键字表进行交叉检查

json - 如何使用也位于对象中的 "id"关键字将对象的 "name"记录在 json 文件中?

php - MySql select from 3 tables Undefined index 错误

mysql - 更新非键列时出现 SQL 错误 1452

language-agnostic - 来自多种编程语言的保留关键字的单一集合?

PhpMyAdmin 连接

mysql - 如何更新 ID = SELECT (...) 的某些行 - SQL