数据库E-R模型中2个PK与2个FK的关联关系是否可以存在?
问题解答
可以正常获取到每条note对应的id,只要外键关联关系配置正确、JOIN语句的关联条件书写无误即可,具体说明如下:
- 你提到的
fk_note、fk_users应该是中间关联表(一般用于存储用户和笔记的对应关系,比如用户发布、收藏笔记的关联)中分别指向note表主键id、users表主键id的外键字段,只要外键约束正常生效,两张表的关联匹配逻辑就是准确的。 - 你可以参考下面的示例语句编写查询逻辑,假设中间关联表命名为
user_note_relation:
SELECT n.id AS note_id, -- 这里就是你要获取的note对应id n.content, u.username FROM user_note_relation unr INNER JOIN note n ON unr.fk_note = n.id INNER JOIN users u ON unr.fk_users = u.id;
- 注意事项:
- 如果
fk_note字段存在空值,INNER JOIN会自动过滤掉没有匹配到对应笔记的关联记录,如果你需要保留这部分记录可以把INNER JOIN换成LEFT JOIN。 - 多表查询时建议给表设置别名,获取note表id时明确指定表归属(比如
n.id),避免不同表存在同名字段时取值错误。
- 如果
内容的提问来源于stack exchange,提问作者TadeoGavensky
相关产品推荐
相关产品推荐

