mysql - 将多个外键连接到同一个表的最佳方法

标签 mysql sql join

我有一个表“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/

相关文章:

php - 数组中的重复区域

PHP 计算没有显示我想要的正确答案?

sql - 加快缓慢的SQL查询

sql - 支付表设计

MySQL:在没有 JOIN 或 UNION 的情况下合并两个不同的表

java - 如何使用hibernate动态添加列

mysql - 如何针对 LIKE '%abc%' 查询优化包含 1.6+ 万条记录的 MySQL 表

html - 将所有选择不同查询合并为一个

java - 没有从java获取数据到mysql

php - 从左连接返回 mysql 查询中的最后一行