这可能是一个简单的问题,但我无法在任何地方找到答案。这是问题的抽象版本:
- 我有一个表“数据”,其中有一个名为“键”的列和一个名为“值”的列
- 我有另一个表“用户”,其中包含名为“ID”、“Key1”、“Key2”的列
- 我想要某种连接,它将给出列“ID”、“Value1”和“Value2”,其中 Value1 是 Key1 的值,Value 2 是 Key2 的值。
尝试
select u.id, d1.v as v1, d2.v as v2 from users u
inner join data d1 on u.k1 = d1.k
inner join data d2 on u.k2 = d2.k
您可以检查它是否适用于SQLFiddle
select d1.value, d2.value from Users
inner join Data d1 on users.key1 = d1.key
inner join Data d2 on users.key2 = d2.key
SELECT
a.ID,
b.Value AS Value1,
c.Value AS Value2
FROM
users a
INNER JOIN
data b ON a.Key1 = b.Key
INNER JOIN
data c ON a.Key2 = b.Key