【发布时间】:2018-07-04 09:22:22
【问题描述】:
我有一个包含多个表的数据库,其中包含一个电子邮件字段。现在,假设它们被称为 table1、table2 和 table3。
我想要一个在所有行、所有表中查找特定域 (...@domain.com) 的查询。
我用来查看哪些表有电子邮件行的查询:
Select * From INFORMATION_SCHEMA.COLUMNS WHERE column_name = 'email';
这将返回 table1、table2、table3 的列表。
我用来查看哪些行包含我正在搜索的域的查询:
Select * from table1 where email like '%@domain.com;
这将返回 table1 中所有行的列表,其中电子邮件以域结尾。
我正在寻找的是一个将 table1、table2 和 table3 的结果组合在一个列表中的查询。我认为可行的是:
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';
这会导致语法错误。
我已经搜索了子查询,但我无法让这个查询工作。谁能帮帮我?
提前感谢您的宝贵时间。
【问题讨论】: