如何在php中的多个表中搜索具有相同列名的值?

如何在php中的多个表中搜索具有相同列名的值?,php,mysqli,Php,Mysqli,如何通过'LIKE'或'SEARCH'函数查看来自不同表但在php中具有相同列名的值 我这里有4个表,分别是:mcertificate、bcertificate、dcertificate、gcertificate,它们都有一个列,名称为“transaction_id” 这是我的疑问: $query = mysqli_query($db, "SELECT mcertificate.*, bcertificate.*, dcertificate.*, gcertificate.*, FROM mc

如何通过'LIKE'或'SEARCH'函数查看来自不同表但在php中具有相同列名的值

我这里有4个表,分别是:mcertificate、bcertificate、dcertificate、gcertificate,它们都有一个列,名称为“transaction_id”

这是我的疑问:

$query = mysqli_query($db, "SELECT mcertificate.*, bcertificate.*, 
dcertificate.*, gcertificate.*, FROM mcertificate, bcertificate, 
dcertificate, gcertificate WHERE transaction_id LIKE '%$search%'");

但是它不起作用。

一种方法是通过工会的帮助:

select * from
(
  select 'mcertificate' as tbl, transaction_id from mcertificate union
  select 'bcertificate' as tbl, transaction_id from bcertificate union
  select 'dcertificate' as tbl, transaction_id from dcertificate union
  select 'gcertificate' as tbl, transaction_id from gcertificate
) tmp
where tmp.transaction_id like '%test%'

“但它有一个错误。”-那么修复它吧…?如果你需要帮助的话,那么至少提一下这个错误到底是什么。。。请阅读。wrt删除的绘图问题您可能想研究哇它的工作,但我想知道tmp是做什么的?它是一个聚合的“虚拟表”的名称。你可以用任何你想要的名字。使用
union
可以将多个查询的结果粘合到一个“虚拟表”中,稍后可以对其进行处理