說我有一個包含各種類型的編碼表,替換值ID爲前:的MySQL JOIN從另一個表
ID EncodingName
------------------
1 UTF-8
2 ISO-8859-1
而另一EncodingMapping使用這些ID來跟蹤哪些編碼轉換從和到:
ID ItemId_FK EncodingFromId_FK EncodingToId_FK
-------------------------------------------------
1 45 2 1
2 78 1 2
我想創建一個用於創建以下結果的SQL語句時ItemId_FK = 45(例如):
FromEncoding ToEncoding
-------------------------
ISO-8859-1 UTF-8
似乎它會很簡單,但我不能通過以這種格式返回單行來獲得JOIN工作。
我有什麼事這麼遠(這是錯誤的):
SELECT EncodingName As FromEncoding, EncodingName As ToEncoding
FROM Encoding
LEFT JOIN EncodingMapping As em
ON Encoding.ID = em.EncodingFromId_FK OR Encoding.ID = em.EncodingToId_FK
WHERE ItemId_FK = 45
謝謝。其他一些答案使用了LEFT JOIN而不是INNER JOIN。你能解釋什麼時候在這方面使用? – http203
@ http203:Jeff在他的博客文章[SQL連接的可視化解釋](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins。 HTML)。 – eggyal