我有两个表,即:tbl_subscriber
和tbl_faculty
tbl_subscriber
具有字段,即:name
、id_number
、email
、phone
tbl_faculty
有:f_name
、l_name
、email
、phone
。
我有一个搜索框。我想写一个查询,如果我在其中键入电话号码/email/name/f_name/l_name,它应该搜索两个表以匹配所提供的条目,并返回与该条目对应的所有行。
可以肯定的是,所提供的条目将在上述表中的任何一个表中(正如我所做的那样),而不是同时在这两个表中。我的意思是,一次只有一个表字段匹配,但查询应该同时搜索这两个表。
select x , y from tbl_subscriber
union all
select x , null as y from tbl_faculty
这可能会奏效:
SELECT name,id_number,email,phone FROM tbl_subscriber
UNION
SELECT CONCAT(f_name, ' ', l_name) AS name, id_number, email, phone FROM tbl_faculty
您可能需要对name字段进行一些强制转换,但它至少可以解决表具有不同数量字段的问题。