Мне нужно выбрать некоторые строки из таблицы 1, если скажем, если значение найдено в таблице 2. Поэтому я хочу проверить, будет ли значение (я буду вводить значение из командной строки) находится в таблице 2, а затем выберите строки из таблицы 1, если я не хочу выбирать строки из другой таблицы. Я попробовал CASE, но из того, что получил, работает только в том случае, если вы хотите проверить значение внутри одной таблицы. Есть идеи?Выберите из таблицы, если запись найдена в другой таблице
3
A
ответ
6
Вы можете сделать что-то вроде этого:
-- If value is found in table2, select from table1
select * -- <- use padding if necessary
from table1
where exists (select 1
from table2
where myField = value)
union all
-- If value is not found in table2, select from another_Table
select * -- <- use padding if necessary
from another_Table
where not exists (select 1
from table2
where myField = value)
1
Этот запрос будет выбрать из Table1
если :id
существует в Table3
, и от Table2
иначе:
select *
from Table1
where exists
(
select *
from Table3
where id = :id
)
union all
select *
from Table2
where not exists
(
select *
from Table3
where id = :id
)
+0
Спасибо за ответ, но Table1 и Table2 не имеют одинаковые номера или типы столбцов. Я хочу выбрать один из них самостоятельно. –
Смежные вопросы
- 1. Выберите из другой таблицы, если запись не найдена в первой таблице - SQL Server 2012
- 2. выберите значение из другой таблицы, если запись найдена else, используйте значение в текущей таблице
- 3. Обновить запись в таблице из другой таблицы
- 4. Выберите дополнительную команду, если запись не найдена
- 5. Выберите из другой таблицы, если значение существует
- 6. Выберите последнюю запись в таблице
- 7. Выберите все записи из одной таблицы с дополнительным полем, которое показывает, была ли эта запись найдена в другой таблице
- 8. echo "x", если запись не найдена в таблице?
- 9. Mysql выберите из таблицы, сравнив значение в другой таблице
- 10. Выберите из таблицы, где в другой таблице наиболее эффективный способ
- 11. Выберите из таблицы не существует в другой таблице тузд PHP
- 12. выберите obsservableArray запись из таблицы в нокаут
- 13. Выберите из присоединяемой таблицы, только если запись существует
- 14. Выберите из таблицы, где состояние в другой таблице
- 15. Выберите строку из таблицы, которая не существует в другой таблице
- 16. Выберите записи из таблицы, которых нет в другой таблице
- 17. Выберите строки из таблицы не соответствуют в другой таблице
- 18. Выберите записи в таблице на основе условий из другой таблицы?
- 19. Извлечь все записи из одной таблицы, даже если связанная запись не найдена в связанной таблице
- 20. Обновить одну таблицу, где запись найдена в другой таблице
- 21. MySQL - выберите последнюю запись из второй таблицы, соответствующей первой таблице
- 22. Mysql Регистрация выберите запись из таблицы с не в другой таблице
- 23. выберите запись, которой нет в другой таблице в codeigniter
- 24. выберите запись из объединенной таблицы, если она существует
- 25. Показать столбец Y/N, если запись найдена в таблице подробностей
- 26. Выберите одну значимую запись из соответствующей таблицы
- 27. Выберите из таблицы Distinct просуммировать значения на другой таблице
- 28. Выберите значение в другой таблице, если ссылка находится
- 29. Пропустить строку, если запись существует в другой таблице
- 30. Обновление значения в таблице из другой таблицы
Спасибо, но что делать, если таблицы имеют разные номера и/или типы столбцов? –
@Albano Vito: использовать прописку (добавить нули), лить, например: select id, null, comments ... union all select id, name, null –
Да, спасибо большое :) –