我有3张桌子
表 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.约翰·威廉姆斯
3.威廉姆斯·史密斯
5.詹姆斯·哈特
我尝试了联合以及“%will%”之类的操作,但结果中返回了重复项。有人可以帮我查询吗?
Thanks.
假设eid
是一个外键uid
,那么这样的事情应该有效:
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 条件中。
Results:
UID FNAME LNAME
1 John Williams
3 Williams Smith
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)