Выявление недостающих совпадений в базе данных MySQL - PullRequest
0 голосов
/ 17 мая 2009

Есть ли способ идентифицировать отсутствующую комбинацию в таблице соединений. Например: три вкладки

животные

еда

animals_food

может определить, была ли какая-либо конкретная пища не связана с животным, или наоборот?

1 Ответ

3 голосов
/ 17 мая 2009

Вы можете использовать левое соединение:

SELECT animals.id FROM animals LEFT JOIN animals_food ON animals.id = animals_food.animals_id WHERE animals_food.food_id IS NULL;

A левое объединение содержит все строки из левой таблицы (животные), даже если условие объединения не находит подходящих строк из правой таблицы (animals_food). Если совпадение не найдено, столбцы правой таблицы заменяются на NULL.

Условие WHERE в моем запросе удаляет все совпадающие строки, оставляя только лишние строки в левой таблице в результате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...