查找多个表中包含电子邮件的所有行

xdyibdwo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(292)

我有一个包含多个表的数据库,其中包含一个电子邮件字段。现在,假设它们被称为表1、表2和表3。
我需要一个在所有行、所有表中查找特定域(...@domain.com)的查询。
我用来查看哪些表有电子邮件行的查询:

  1. Select * From INFORMATION_SCHEMA.COLUMNS WHERE column_name = 'email';

这将返回表1、表2、表3的列表。
用于查看哪些行包含要搜索的域的查询:

  1. Select * from table1 where email like '%@domain.com;

这将返回表1中电子邮件在域中结束的所有行的列表。
我要找的是一个将表1、表2和表3的结果组合在一个列表中的查询。我认为可行的是:

  1. Select * from (
  2. Select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'email'
  3. ) where email like '%domain.com'

但这会返回一个错误:

  1. [42000][1248] Every derived table must have its own alias

所以我想我应该把问题写出来:

  1. select * from table1 where email like '%@domain.com' OR
  2. select * from table2 where email like '%@domain.com' OR
  3. select * from table3 where email like '%@domain.com';

这将导致语法错误。
我已搜索子查询,但无法使此查询工作。有人能帮我吗?
提前谢谢你的时间。

u3r8eeie

u3r8eeie1#

请尝试以下操作:

  1. select * from table1 where email like '%@domain.com'
  2. Union all
  3. select * from table2 where email like '%@domain.com'
  4. Union all
  5. select * from table3 where email like '%@domain.com';

相关问题