0
その値をIDに置き換える:は、MySQL、3つのテーブルを結合し、私が使用する3つのテーブルを持っている
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
イベントテーブルには、私が欲しいものに近いですが、彼らは代わりにIDSで満たされています。
nameA.shortName | nameB.shortName | place.name
--------------- | --------------- | ----------
a | c | p1
b | d | p2
これまでのところ、私は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、nameB両方のための短縮名だけでなく、完全な地名で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
二回名前テーブルに参加。 (表のエイリアスがあります(例:n1とn2)。 – jarlh