У меня есть две таблицы, с 2 ПК. Таблица 1 имеет 478 записей. Поле 1 является уникальным идентификатором только для этой таблицы. Поле 2 таблицы 1 является идентификатором (используется совместно с таблицей 2), а 3-е поле является полем категории. Идентификаторы из поля 2 могут повторяться в таблице, но у меня не может быть идентификатора + категории дважды.
У меня есть вторая таблица, которая содержит 757 записей. У него есть столбец идентификатора и столбец категории (например, таблица1), и я хочу знать, какие записи из таблицы 1 включены в таблицу 2. На данный момент я просто проверяю, какие идентификаторы включены в обе таблицы (я хочу очистить базы данных, чтобы я мог использовать AND
запрос для получения ID + категории)
Мой запрос SQL не возвращает желаемый результат. Когда я делаю
SELECT DISTINCT(table1.field1) FROM table1, table2 WHERE table1.ID = table2.ID;
Я получаю все результаты, которые совпадают, но когда я делаю обратное
SELECT table1.field1 FROM table1, table2 WHERE table1.ID != table2.ID;
SQL дает все строки из таблицы 1, когда ожидаемый результат будет
всего строк из таблицы 1 - идентификаторы, совпадающие с теми, что в таблице 2
Я пытался инвертировать порядок, в котором запрос отображается как:
SELECT table1.field1 FROM table1, table2 WHERE table2.ID != table1.ID;
Но затем происходит цикл, и я получаю 36000+ результатов, что, конечно, невозможно (я представляю, что проверка таблицы с большими записями по сравнению с таблицей меньших размеров делает цикл с одним циклом снова и снова, и я вижу, что получаю полную таблицу все время, цикл Xtimes478, следовательно, 36000+ результатов).
Я проверил этот сопоставленный / несопоставленный запрос, используя R (только для тестирования), и я получил 170 совпадений (которые я могу получить в SQL) и 308 «не совпадающих» результатов (170 + 308 = 478, поэтому я представляю, что это делает смысл, даже если я использую R вместо правильной системы реляционных баз данных)
Как я могу искать несопоставленные идентификаторы в запросе, а не проверять их и вычитать из общего числа? Как получить 308 записей, которые не совпадают?