2012-02-26 81 views
1

我有一個問題...假設我有一個表,其中包含城市名稱。是這樣的:「選擇」困境

id name 
1 Los Angeles 
2 Madrid 

而且我有用戶表:

uid username locationid hometownid 
1 John  1   2 

其中約翰是其當前的位置是洛杉磯和他的家鄉是馬德里的用戶。 是否有反正我可以檢索用戶的當前位置名稱和家鄉名在一行與SELECT查詢?如果這是不可能的,你有沒有建議改變數據庫結構以使其成爲可能?

回答

4

是的,它非常簡單 - 只需在用戶表中爲每個相關字段添加一個JOIN即可。

SELECT u.username, c1.name AS location, c2.name AS hometown 
FROM users AS u 
LEFT JOIN cites AS c1 ON u.locationid = c1.id 
LEFT JOIN cites AS c2 ON u.hometownid = c2.id 
WHERE u.id = 1 LIMIT 1;