mysql - 在 MySQL 中查找断开的关系

标签 mysql relational-database

我有一个关于关系数据库的问题。我知道在使用它时我应该正确设置我的外键但我没有立即这样做所以现在我必须清理我凌乱的数据库以删除关系破裂的条目。我的表格看起来有点像这样:

链接
|编号 |网址 |其他不相关的领域 |

LINK_USERS
|编号 |链接 ID |其他不相关的领域 |

LINK_USERS通过link_id字段(即LINKS表中表项的id)可以看出LINK_USERS与LINKS有关系

我已经弄乱了一段时间,但不知何故,我似乎无法从 LINK_USERS 中选择所有在 LINKS 中没有引用的行。

我必须在这里补充一点,删除应该只发生在 LINKS 表上。所以我想从查询中选择所有行 FROM LINK_USERS WHERE link_id 在 LINKS 表中找不到。

您可能已经想到,我不是 MySQL 大师。如果我的问题含糊不清,请告诉我,我会尝试更好地表述。

提前致谢!

最佳答案

你的问题一点都不模糊;你可以用非常简单的 SQL 得到你想要的东西(它看起来很像你对你正在寻找的东西的英语描述):

 SELECT * FROM LINK_USERS WHERE link_id NOT IN (SELECT id FROM LINKS);

关于mysql - 在 MySQL 中查找断开的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695963/

相关文章:

php - Laravel 同步多对多关系

database - DB::table ('table' ) 和 model::('table' ) 之间的区别

php - MySQL 锁定行计时器

php - 带有 <li> 和 <div> 过滤的 Mysql 查询

java - 基于 Web 的项目的基本架构指南 : cloud

php - 就像限制不能正常工作一样?

database - 这张表是哪个最高范式?

mysql - 建模产品变体

php - Mysql 两个表之间的多重联接

entity-framework - Entity Framework 包括深度