“选择”两难

时间:2012-02-26 02:19:26

标签: mysql

我有一个问题......假设我有一个包含城市名称的表格。像这样的东西:

id  name  
1   Los Angeles
2   Madrid

我有一张供用户使用的表格:

uid username locationid  hometownid
1   John     1           2

其中约翰是一名用户,其当前位置是洛杉矶,他的家乡是马德里。 无论如何我可以使用SELECT查询检索用户的当前位置名称和家乡名称在一行吗?如果不可能,您对数据库结构的变化有什么建议吗?

1 个答案:

答案 0 :(得分: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;