我有三张表:
event Table
id | round | nameA | nameB | place
-- | ----- | ----- | ----- | -----
1 | 1 | 1 | 3 | 1
2 | 1 | 2 | 4 | 2
name Table
id | name | shortName | place
-- | ---- | --------- | -----
1 | A | a | 1
2 | B | b | 2
3 | C | c | 3
4 | D | d | 4
place Table
id | name
-- | ---
1 | p1
2 | p2
3 | p3
4 | p4
事件表与我想要的内容接近,但它们充满了ID。我想用namea,nameb以及这样的完整名称的短名称替换ID:
nameA.shortName | nameB.shortName | place.name
--------------- | --------------- | ----------
a | c | p1
b | d | p2
到目前为止,我设法替换了位置ID的名称和Namea的名称
SELECT n.shortName, e.nameB, p.name
FROM event e
INNER JOIN name n
ON n.id = e.nameA
INNER JOIN place p
ON e.place = g.id
但是,名称仍在其ID中
nameA.shortName | nameB.id | place.id
--------------- | --------------- | ----------
a | 3 | p1
c | 4 | p2
我猜加入和子查询。我知道如何获取短名和位置名称,但是如何将它们集成到主要查询?
SELECT n.shortName
FROM name n
JOIN event e
ON n.id = e.nameB
在每个字段中,您要重视的一个名称表与: -
SELECT n1.shortName,
n2.shortName,
p.name
FROM event e
INNER JOIN name n1 ON n1.id = e.nameA
INNER JOIN name n2 ON n2.id = e.nameB
INNER JOIN place p ON e.place = g.id