Объединить два выберите <значение> в один устав?

0

Моя основная проблема заключается в том, что я не знаю, как сказать, выбрать 1 на этом cond select 2 на этом cond. Поэтому я сделал их как свои собственные заявления. Есть ли способ их комбинирования?

select 1 from FlagContent where user=? and rev = ?;
select 2 from ContentRevision r
            join ContentRevision r2 on r.content=r2.content
            join FlagContent fc on fc.user=? and fc.rev = r2.id
            where r.id=?;
Теги:

1 ответ

5
Лучший ответ

Используйте UNION для "слияния" похожих наборов результатов.

SQL UNION позволяет объединить два или более двух результирующих наборов из нескольких таблиц.

Однако существуют некоторые условия для его использования:

  • Число столбцов в каждом операторе SELECT должно быть одинаковым
  • Тип данных столбца в списке столбцов оператора SELECT должен быть таким же или, по крайней мере, конвертируемым.

select 1 from FlagContent where user=? and rev = ?;
UNION ALL
select 2 from ContentRevision r
            join ContentRevision r2 on r.content=r2.content
            join FlagContent fc on fc.user=? and fc.rev = r2.id
            where r.id=?;
  • 0
    Обратите внимание, что UNION ALL работает быстрее, поскольку не пытается удалить дубликаты. Удаление дубликатов требует сортировки и сравнения, что может быть дорогостоящим.
  • 0
    @ acidzombie24 - Каждый из них будет в отдельном ряду. ExecuteScalar не будет работать.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню