我有三张桌子可供使用:
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
到目前为止,我设法用nameA的名称和短名称替换地方ID
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
但是,nameB仍然在其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
答案 0 :(得分:1)
针对您想要评估的每个字段,针对名称表加入一次表: -
listed