我有一点问题 - 因为我在SQL方面不是很有经验 - 关于在多个值上加入同一个表。想象一下有表1(称为字符串):
id value
1 value1
2 value2
然后有表2(称为地图):
id name description
1 1 2
所以name是对Strings表的引用,描述也是如此。没有引用Strings表的第二个字段就没问题了,id只是在Strings.id = Maps.name上进行内部连接。但现在id喜欢获取实际字符串也用于描述。 SELECT的最佳方法是什么才能让我回归?现在它看起来像这样:
SELECT Maps.id, Strings.value AS mapName FROM Maps INNER JOIN Strings ON Strings.id = Maps.name;
但这显然只涵盖了一个本地化名称。提前谢谢。
答案 0 :(得分:2)
您可以通过两个连接到同一个表来执行此操作:
SELECT m.id, sname.value AS mapName, sdesc.value as description
FROM Maps m INNER JOIN
Strings sname
ON sname.id = m.name INNER JOIN
Strings desc
ON sdesc.id = m.description;
请注意使用表别名来区分这两个表。
答案 1 :(得分:1)
只要您想从另一个表中获取单个值,就可以使用子查询来执行这些查找:
SELECT id,
(SELECT value FROM Strings WHERE id = Maps.name) AS name,
(SELECT value FROM Strings WHERE id = Maps.description) AS description
FROM Maps