识别Mysql DB中的缺失匹配

时间:2009-05-17 10:32:47

标签: mysql

有没有办法在连接表中识别缺失的组合。例如:三个标签

动物

食品

animals_food

可以识别任何特定食物与动物没有关联,反之亦然?

1 个答案:

答案 0 :(得分:3)

您可以使用左连接:

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

即使连接条件没有找到右表中的任何匹配行(animals_food),left join也包含左表(动物)中的所有行。如果未找到匹配项,则右表的列将替换为NULL。

我的查询中的WHERE条件会删除所有匹配的行,只留下结果中左表的孤立行。

相关问题