Как выбрать значение, не существующее в другом столбце той же базы данных?

Я хочу выбрать записи, которые имеют GUID и не существуют в parentGUID

Введите здесь описание изображения

Я пробовал этот код

select code, GUID, ParentGUID
from ac00
where NOT EXISTS (select ParentGUID from ac00 where GUID <> ParentGUID)
order by Code asc
Как настроить Tailwind CSS с React.js и Next.js?
Как настроить Tailwind CSS с React.js и Next.js?
Tailwind CSS - единственный фреймворк, который, как я убедился, масштабируется в больших командах. Он легко настраивается, адаптируется к любому...
LeetCode запись решения 2536. Увеличение подматриц на единицу
LeetCode запись решения 2536. Увеличение подматриц на единицу
Увеличение подматриц на единицу - LeetCode
Переключение светлых/темных тем
Переключение светлых/темных тем
В Microsoft Training - Guided Project - Build a simple website with web pages, CSS files and JavaScript files, мы объясняем, как CSS можно...
Отношения &quot;многие ко многим&quot; в Laravel с методами присоединения и отсоединения
Отношения &quot;многие ко многим&quot; в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel могут быть немного сложными, но с помощью Eloquent ORM и его моделей мы можем сделать это с легкостью. В этой...
В PHP
В PHP
В большой кодовой базе с множеством различных компонентов классы, функции и константы могут иметь одинаковые имена. Это может привести к путанице и...
Карта дорог Беладжар PHP Laravel
Карта дорог Беладжар PHP Laravel
Laravel - это PHP-фреймворк, разработанный для облегчения разработки веб-приложений. Laravel предоставляет различные функции, упрощающие разработку...
1
0
57
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Вы были близки, но у вас не было псевдонимов.

select code,GUID,ParentGUID 
from ac00 t1 
where NOT EXISTS (select * from ac00 t2 
   where t2.GUID = t1.ParentGUID) 
order by Code asc;

Вы можете сделать это более быстрым способом. Соединения обычно выполняются намного быстрее, чем внутренние запросы.

select ac1.Code,ac1.GUID,ac1.ParentGUID 
from ac00 ac1 LEFT OUTER JOIN dbo.ac00 ac2
ON ac2.Guid = ac1.ParentGuid
WHERE ac2.Code IS NULL

Это неправда, см. dba.stackexchange.com/questions/121034/…

Jonas Metzler 18.11.2022 13:31

Кажется, ты прав!

MD Zand 18.11.2022 13:43

Мои знания устарели: «Много лет назад LEFT JOIN работал быстрее, но такого уже давно не было».

MD Zand 18.11.2022 13:57

Поля 1-типа GUID, ParentGUID преобразуются в int, int 2-УНИКАЛЬНЫЙ КЛАСТЕРНЫЙ ИНДЕКС по GUID, НЕКЛАСТЕРНЫЙ ИНДЕКС по ParentGUID

Напишите коды Sql в ответах

Как сейчас написано, ваш ответ неясен. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, которые помогут другим понять, как это отвечает на заданный вопрос. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.

Community 22.11.2022 10:06

1- ИЗМЕНИТЬ ТАБЛИЦУ dbo.tt ИЗМЕНИТЬ СТОЛБЦ [ParentGUID] INT ИЗМЕНИТЬ ТАБЛИЦУ dbo.tt ИЗМЕНИТЬ СТОЛБЦ [GUID] INT

2- СОЗДАТЬ УНИКАЛЬНЫЙ КЛАСТЕРНЫЙ ИНДЕКС icl ON dbo.tt([GUID]) СОЗДАТЬ НЕКЛАСТЕРНЫЙ ИНДЕКС inoncl ON dbo.tt([ParentGUID])

Как сейчас написано, ваш ответ неясен. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, которые помогут другим понять, как это отвечает на заданный вопрос. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.

Community 01.12.2022 01:46

Другие вопросы по теме