這個問題的一個抽象是這樣的:基於映射的mysql數據庫連接
我有一個表有一個名爲「國家」的列。存儲的值是國家的名稱,例如,美國,英國..
我有另一個表有一個名爲'country_code'的列。所存儲的值是該國的數字表示,例如, 12,17 ...
如何基於這兩個表執行連接操作(例如內連接)?困難在於國家和country_code具有一對一的映射關係,但並不直接相等。
這個問題的一個抽象是這樣的:基於映射的mysql數據庫連接
我有一個表有一個名爲「國家」的列。存儲的值是國家的名稱,例如,美國,英國..
我有另一個表有一個名爲'country_code'的列。所存儲的值是該國的數字表示,例如, 12,17 ...
如何基於這兩個表執行連接操作(例如內連接)?困難在於國家和country_code具有一對一的映射關係,但並不直接相等。
您可以創建一個包含國家和country_code的映射表。
我假設你不能更改包含country_code的表以使用國家/地區的字符串表示形式,或者將int列添加到您的國家/地區表中?
喜歡的東西
country_mappings
'
SELECT *
FROM countries c INNER JOIN
country_mappings cm ON c.country = cm.country inner join
your_other_table yot ON cm.country_code = yot.country_code
這是'COUNTRY_MAPPINGS'和'COUNTRIES'之間的一對一關係...... – 2010-02-18 05:37:39
這是正確的。正如答案中提到的,我不確定OP是否可以更改原始2表的結構。如果是這樣,它會使這更容易,並且不需要映射表。 – 2010-02-18 05:41:19
可以使用CASE語句將國家添加到現有表中 – 2010-02-18 05:46:20
爲什麼你需要映射?您可以將它作爲表格的屬性放在表格上 – uji 2010-02-18 05:30:27
您需要手動將這兩個表格合併到一個表格中。您沒有足夠的信息以編程方式加入它們。 – Alex 2010-02-18 05:54:49
亞歷克斯是對的,這兩個表應該是一個。 – e4c5 2010-02-18 15:30:23