我有一个表"user",其中包含几行,这两行都是同一个表"content"的外键,有点像这样:
user.id
user.bio
user.signature
content.id
content.text
Run Code Online (Sandbox Code Playgroud)
我知道从标准化的角度来看,这不是正确的方法,但"内容"表来自我无法修改的单独数据库.我不想复制数据.
我有一个问题,找到一个好方法加入他们.我能做的就是这个,但这似乎很浪费.
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
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 11
如果为每个实例提供不同的别名,则可以多次连接一个表:
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
Run Code Online (Sandbox Code Playgroud)