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

标签 mysql sql subquery

我有一个包含多个表的数据库,其中包含一个电子邮件字段。现在,假设它们被称为 table1、table2 和 table3。

我想要一个在所有行、所有表中查找特定域 (...@domain.com) 的查询。

我用来查看哪些表有电子邮件行的查询:

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

这将返回表 1、表 2、表 3 的列表。

我用来查看哪些行包含我要搜索的域的查询:

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';

这会导致语法错误。

我已经搜索了子查询,但我无法使该查询起作用。谁能帮帮我?

提前感谢您的宝贵时间。

最佳答案

尝试以下操作:

select * from table1 where email like '%@domain.com'
Union all
select * from table2 where email like '%@domain.com' 
Union all
select * from table3 where email like '%@domain.com';

关于mysql - 在多个表中查找包含电子邮件的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51170175/

相关文章:

sql - 添加天 Oracle SQL

Mysql:如何用当前-x行的值更新当前行?

mysql - 如何在关系数据库中实现 "number of likes"

mysql - 如何在MySQL存储过程中设置变量作为查询结果?

sql - Access 分区数据查询并对每个分区求和?

sql - Oracle:如何舍入和更新表中的所有数字?

MySQL 子查询 - MySQL 3.23

sql - "Unknown column"因为子查询中的子查询

mysql - 单个sql查询中同一字段的等于、不等于条件

mysql - 在 mariadb 中连接具有相同 id 的行?