我有一个包含多个表的数据库,其中包含一个电子邮件字段。现在,假设它们被称为表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';
这将导致语法错误。
我已搜索子查询,但无法使此查询工作。有人能帮我吗?
提前谢谢你的时间。
1条答案
按热度按时间u3r8eeie1#
请尝试以下操作: