Объединение двух таблиц с помощью предложения where в одном


В настоящее время у меня есть 2 таблицы, обе таблицы имеют одинаковую структуру и будут использоваться в веб-приложении. эти две таблицы являются производственными и временными. Временная таблица содержит один дополнительный столбец с именем [подписано]. В настоящее время я создаю единый список, используя два столбца, которые находятся в каждой таблице (recno и name). Используя эти два поля, я могу поддерживать функцию поиска в веб-приложении. Теперь то, что мне нужно сделать, это поддержать ограничение количества элементов, которые могут быть использованы в поищите на втором столе. причина этого заключается в том, что после того, как человек "зарегистрирован", аналогичная запись создается в производственной таблице и будет иметь свой собственный recno.

Делать:

Select recno, name
  from production
UNION ALL
Select recno, name
  from temp

...покажет мне всех. Я пытался:

Select recno, name
  from production
UNION ALL
Select recno, name
  from temp
 WHERE signup <> 'Y'

Но это ничего не дает? Кто-нибудь может помочь?

2 2

2 ответа:

Не уверен, что понимаю, чего именно вы хотите. Если вы создаете записи в производственной таблице после того, как они зарегистрировались из временной таблицы, и вам нужны только люди, которые еще не зарегистрировались...вам вообще не нужно смотреть в производственную таблицу. Просто:

SELECT recno, name FROM temp WHERE signup='N'

Или как бы вы ни пытались ограничить свой поиск. Если по какой-то причине вам нужен союз, но вы пытаетесь устранить дубликаты, вам придется изменить свой оператор, чтобы удалить предложение ALL. Союз все заставляет вас получить дубликаты. Если вы не хотите дублировать значения, вы не хотите использовать все в своем объединении. Вы можете прочитать о союзах здесь.

Для того, что вы просите, вы могли бы сделать это в этом стиле.

SELECT * FROM
(
    SELECT '1' as `col`
    UNION 
    SELECT '2' as `col`
) as `someAlias`
where `someAlias`.`col` = '1'

Поместите весь Союз в скобки, дайте ему псевдоним, а затем дайте условие.