我有一个包含电子邮件字段的多个表的数据库。现在,假设它们被称为表1、表2和表3。
我想要一个查询,在所有行、所有表上查找特定的域(.'.'.'.@domain.com)。
我用来查看哪些表具有电子邮件行的查询:
Select * From INFORMATION_SCHEMA.COLUMNS WHERE column_name = 'email';
这将返回表1、表2、表3的列表。
我用来查看哪些行包含我要搜索的域的查询:
Select * from table1 where email like '%@domain.com;
这将返回表1中电子邮件以域结尾的所有行的列表。
我要查找的是一个将表1、表2和表3的结果组合在一个列表中的查询。我认为会起作用的是:
Select * from (
Select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'email'
) where email like '%domain.com'
但这会返回一个错误:
[42000][1248] Every derived table must have its own alias
所以我想我应该把问题写出来:
select * from table1 where email like '%@domain.com' OR
select * from table2 where email like '%@domain.com' OR
select * from table3 where email like '%@domain.com';
这会导致语法错误。
我已经搜索了子查询,但无法使此查询工作。有人能帮我吗?
提前谢谢你的时间。