Нужна помощь в запросе неиспользуемых идентификаторов в реляционной таблице - PullRequest
0 голосов
/ 18 декабря 2011

Я пытаюсь запросить в моей базе данных неиспользуемые listId, но, похоже, не могу получить правильный синтаксис запроса. Вот что я попробовал:

SELECT DISTINCT pkListId FROM tblList 
INNER JOIN InUseLists ON
tblList.pkListId NOT LIKE InUseLists.fkListId

Где tblList содержит все данные List, а InUseLists - представление, содержащее все отдельные listId из моей реляционной таблицы. В настоящее время мой tblList содержит listId 1-9

моя реляционная таблица имеет fkListId 1,8,9 (используется более одного раза)

Таким образом, мой взгляд получает различные значения из реляционной таблицы - 1,8,9.

Что не так с моим синтаксисом запроса?

Ответы [ 2 ]

1 голос
/ 18 декабря 2011

Звучит так, как будто вы хотите left join (который может быть успешным независимо от того, найдет ли он совпадение в «правильной» таблице) и затем выбрать те строки, где объединение фактически не сработало.

Что-то вроде:

SELECT DISTINCT pkListId FROM tblList 
LEFT JOIN InUseLists ON
tblList.pkListId LIKE InUseLists.fkListId
WHERE InUseLists.fkListId is null

(Если LIKE - правильный оператор здесь. В большинстве объединений используется простая проверка на равенство)


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

1 голос
/ 18 декабря 2011

Попробуйте:

SELECT DISTINCT tblList.pkListId, FROM tblList, InUseLists WHERE
tblList.pkListId NOT IN(InUseLists.fkListId)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...