0

我需要从 2 个表中检查一条记录属于哪个表,并根据返回的表设置一个变量。

例如,我有 2 个表(tbl_registered_users、tbl_unregistered_users)。如果我搜索 tbl_registered_users 中存在的电子邮件地址,我希望查询返回“tbl_registered_users”,以便我可以设置一个变量 $whatTable = ...(例如)。

我知道如果我可以保证记录将存在于至少一个表中,我可以使用 2 个查询甚至 1 个来执行此操作,但是我可能希望在 3/4/5/10 表和可能不存在的记录上使用该查询在任何。

谢谢

4

1 回答 1

1

您可以将UNIONfor 与子查询一起使用:

SELECT *
FROM (
    SELECT 'Registered' WhichTable, Email
    FROM tbl_registered_users
    UNION 
    SELECT 'UnRegistered', Email
    FROM tbl_unregistered_users 
) t
WHERE Email = 'emailaddress'

使用UNION ALL会产生更好的性能,但它不会删除重复项(如果您在任一表中都有重复数据)。

于 2013-07-21T00:36:21.513 回答