don*_*als 4 mysql relational-database
我对关系数据库有疑问.我知道在使用它时我应该正确设置我的外键但我没有立即这样做,所以现在我必须清理我的凌乱的数据库,以删除关系破坏的条目.我的表看起来有点像这样:
链接
| id | 网址| 其他不相关的领域|
LINK_USERS
| id | link_id | 其他不相关的领域|
很明显LINK_USERS通过link_id字段与LINKS有关系(这是LINKS表中条目的id)
我现在已经搞乱了一段时间,不知怎的,我似乎无法选择LINK中没有引用的LINK_USERS中的所有行.
我必须在此添加删除应该只发生在LINKS表上.所以我想从查询中选择所有行FROM LINK_USERS WHERE在LINKS表中找不到link_id.
你可能已经想到了,我不是MySQL大师.如果我的问题含糊不清,请告诉我,我会尝试更好地制定它.
提前致谢!
Lar*_*tig 11
你的问题根本不含糊; 你可以通过非常简单的SQL获得你想要的东西(看起来非常像你正在寻找的英语语言描述):
SELECT * FROM LINK_USERS WHERE link_id NOT IN (SELECT id FROM LINKS);
Run Code Online (Sandbox Code Playgroud)
这是LEFT JOIN版本:
SELECT *
FROM LINK_USERS
LEFT JOIN LINKS ON LINK_USERS.link_id = LINKS.link_id
WHERE LINKS.link_id IS NULL
Run Code Online (Sandbox Code Playgroud)
它做同样的事情,但它可能更快更大的表.因人而异.
| 归档时间: |
|
| 查看次数: |
3666 次 |
| 最近记录: |