Список неиспользуемых идентификаторов - PullRequest
3 голосов
/ 27 августа 2011

У меня есть DropDownList, который заполняется первичным ключом таблицы A. Таблица B использует первичный ключ таблицы A в качестве внешнего ключа.Внешний ключ может быть использован только один раз.

Так что в настоящее время мой список всегда заполняется: 1, 2, 3, 4, 5 (существует как основной в Таблице A).В таблице B уже используются ключи: 1, 2, 3. Когда они уже существуют в таблице B, мне нужно, чтобы они не заполнялись в раскрывающемся списке.

Я пытался указать в запросе SQL, чтобызаполняются только ключи, которых нет в таблице B. Я пытаюсь, но не работаю, запрос:

SELECT Table_A.Grades_ID FROM Table_A INNER JOIN Table_B ON Table_A_ID = Table_B.Grades_ID WHERE Table_A.Grades_ID != Table_B.Grades_ID

Как получить в раскрывающемся списке незаполненные ключи (данные), которые уже естьсуществует в таблице B?

Ответы [ 4 ]

5 голосов
/ 27 августа 2011

Просто настройте свой SQL, чтобы исключить значения PKey, которые уже существуют в TableB

SELECT Table_A.Grades_ID 
FROM 
  Grades 
  LEFT JOIN Table_B ON Table_A_ID = Table_B.Grades_ID 
WHERE Table_B.Grades_ID Is Null

В качестве альтернативы вы можете использовать «не в»

SELECT
  Tables_A.Grades_ID
WHERE 
  Tables_A.Grades_ID not in (Select Grades_ID from Table_B)
0 голосов
/ 27 августа 2011

Выберите Table_A.Grades_ID из таблицы А где Table_A.Grades_ID NOT IN (выберите Grades_ID из таблицы_B)

0 голосов
/ 27 августа 2011
SELECT Grades_ID FROM Grades WHERE Grades_ID NOT IN (SELECT Grades_ID FROM Table_B)
0 голосов
/ 27 августа 2011

Попробуйте это:

select table_a.grades_id
from table_a left outer join
on table_a.grades_id = table_b.grades_id
where table_b.<some other field> is null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...