我有一个表“user”,其中有几行都是同一个表“content”的外键,有点像这样:
user.id
user.bio
user.signature
content.id
content.text
我知道从规范化的角度来看这不是执行此操作的正确方法,但“内容”表来 self 无法修改的单独数据库。而且我不想复制数据。
我在寻找加入他们的好方法时遇到了问题。我所能做的就是这个,但这似乎很浪费。
SELECT bio.bio, text.text
FROM(
SELECT content.text as bio
FROM content, user
WHERE user.bio = content.id
AND user.id = 4) AS bio,
SELECT content.text as content
FROM content, user
WHERE user.signature = content.id
AND user.id = 4) AS content
最佳答案
如果你给每个实例一个不同的别名,你可以多次连接一个表:
SELECT bio.text, sig.text
FROM user u
JOIN content bio ON u.bio = bio.id
JOIN content sig ON u.signature = sig.id
WHERE u.id = 4
关于mysql - 将多个外键连接到同一个表的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756332/