Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从多个MySQL表中搜索SQL查询_Mysql_Search - Fatal编程技术网

从多个MySQL表中搜索SQL查询

从多个MySQL表中搜索SQL查询,mysql,search,Mysql,Search,我正在尝试对多个表执行搜索 我将简化问题,并说我有两个表Worker和Customer都有Id、Name、姓氏,Worker有额外的Position,所有字段都是varchar,除了Id是Int 如何进行查询,以返回客户或工作者的行,其中一个字段包含输入的搜索字符串 我尝试了连接,但也返回了连接行 select id,name,surname,position,'worker' as tbl from worker where .. union all select id,name,surnam

我正在尝试对多个表执行搜索

我将简化问题,并说我有两个表
Worker
Customer
都有
Id、Name、姓氏
Worker
有额外的
Position
,所有字段都是
varchar
,除了
Id
Int

如何进行查询,以返回
客户
工作者
的行,其中一个字段包含输入的搜索字符串

我尝试了连接,但也返回了连接行

select id,name,surname,position,'worker' as tbl from worker where ..
union all
select id,name,surname,'','customer' from customer where ...

通过这种方式,您甚至可以知道结果表所属。

只需
UNION
两个查询。
如果你真的能
加入这两者,你可以使用
SELECT
子句中的
IF
语句显示右侧字段。

但是,根据我从您的问题中了解到的情况,请使用UNION

,因为某种原因,我认为我不能使用UNION,因为字段不完全匹配。我错了,谢谢。看看我的例子。添加一个“空”字段以匹配该数字就足够了。