powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка на наличие записи в другой таблице.
11 сообщений из 11, страница 1 из 1
Проверка на наличие записи в другой таблице.
    #39821706
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Честно поискал на форуме ответ на вопрос, не нашел.

Есть две таблицы, нужно проверить есть ли id из первой таблицы во второй, и вывести 1 или 0.

Запрос мой такой:

Код: sql
1.
2.
3.
SELECT JR.Oid ,CL.done
FROM  journal as JR
left join check as CL on CL.journal = JR.Oid



Например в таблице check в столбце journal может быть oid из таблицы journal.

На выходе хотелось бы примерно такой результат:
Oid done4FF20401-0816-11E9-BB99-00155D754600 0DC9A9A18-0816-11E9-BB99-00155D754600 062227781-0814-11E9-BB99-00155D754600 1AAA74E39-85DB-11E9-BB9F-00155D754600 1B1894460-080E-11E9-BB99-00155D754600 0DDC3AF59-0813-11E9-BB99-00155D754600 1
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821725
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
case используйте или iif
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821746
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал написать так:

Код: sql
1.
2.
3.
4.
SELECT JR.Oid 
      ,CASE WHEN CL.journal IS NULL THEN 0 ELSE 1 END done
FROM  journal as JR
left join check as CL on CL.journal = JR.Oid



но он выводит много строк если в таблице check есть повторяющийся id.
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821747
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Artur,

COUNT проверять
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821757
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так заработало, это правильный запрос:
смущает group by

Код: sql
1.
2.
3.
4.
5.
SELECT JR.Oid 
      ,CASE WHEN COUNT(CL.journal) = 0 THEN 0 ELSE 1 END as done
FROM  journal as JR
left join check as CL on CL.journal = JR.Oid
group by JR.Oid
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821761
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Artur,


авторсмущает group by
краснеете?
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821767
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hopfen_Arturсмущает group byПравильно смущает.
Без него:
Код: sql
1.
2.
3.
SELECT JR.Oid 
      ,CASE WHEN exists(select 1 from [check] where journal = JR.Oid) THEN 1 ELSE 0 END done
FROM  journal as JR
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821770
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT 
      JR.Oid, 
      CASE WHEN CL.journal IS NULL THEN 0 ELSE 1 END done
FROM  journal as JR left outer join (SELECT DISTINCT journal FROM [check]) as CL 
  on CL.journal = JR.Oid;
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821787
Hopfen_Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо =)
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39821788
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
SELECT JR.Oid 
      ,ISNULL((SELECT TOP(1) 1 FROM [check] WHERE journal = JR.Oid),0) done
FROM  journal as JR;
...
Рейтинг: 0 / 0
Проверка на наличие записи в другой таблице.
    #39822677
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap
Код: sql
1.
2.
3.
SELECT JR.Oid 
      ,ISNULL((SELECT TOP(1) 1 FROM [check] WHERE journal = JR.Oid),0) done
FROM  journal as JR;



Все извращаются. Можно, я тоже?
Код: sql
1.
2.
3.
4.
5.
SELECT JR.Oid 
      ,ISNULL(t.Yes, 0) done
FROM  journal as JR
		outer apply (Select 1
				 Where exists (Select 1 FROM [check] WHERE journal = JR.Oid)) t(Yes)


Хотя план, наверняка будет говно.
:-)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка на наличие записи в другой таблице.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]