两个表上的联合,其中一个是where子句

Los*_*ter 2 sql union union-all

目前我有2个表,这两个表具有相同的结构,将用于Web应用程序.这两个表是生产和临时.临时表包含一个名为[已注册]的附加列.目前,我使用每个表中的两列(recno和name)生成一个列表.使用这两个字段,我能够支持我的Web应用程序搜索功能.现在我需要做的是支持限制第二个表上搜索中可以使用的项目数量.这样做的原因是,一旦一个人"注册",就会在生产表中创建一个类似的记录,并且会有自己的recno.

这样做的:

Select recno, name
  from production
UNION ALL
Select recno, name
  from temp
Run Code Online (Sandbox Code Playgroud)

......会告诉我每个人.我试过了:

Select recno, name
  from production
UNION ALL
Select recno, name
  from temp
 WHERE signup <> 'Y'
Run Code Online (Sandbox Code Playgroud)

但这没有回报?有人可以帮忙吗?

小智 6

对于你所要求的,你可以这样做.

SELECT * FROM
(
    SELECT '1' as `col`
    UNION 
    SELECT '2' as `col`
) as `someAlias`
where `someAlias`.`col` = '1'
Run Code Online (Sandbox Code Playgroud)

将整个联合放在括号内,给它一个别名,然后给出条件.