加入两个表并显示属性名称而不是id

时间:2015-11-23 08:54:14

标签: mysql

选择列表

chl_element  chl_label    chl_dependent_value  chl_value
country      india                             IN
state        karnataka    IN                   KA
city         bangalore    KA                   BNG  

用户表

elo_state  elo_country  elo_city
KA         IN           BNG

我如何加入这两个表并显示country名称是印度而不是In .....我不想使用子查询,因为搜索它时会创造问题

1 个答案:

答案 0 :(得分:0)

您必须使用选择列表表加入users表。您还需要指定要加入的属性。例如,如果您的users表包含列用户名,则可以使用此选项:

SELECT
  users.username,
  c1.chl_label AS country,
  c2.chl_label AS state,
  c3.chl_label AS city
FROM
  users LEFT JOIN choicelist c1
  ON users.elo_country=c1.chl_value AND c1.chl_element = 'country'
  LEFT JOIN choicelist c2
  ON users.elo_state=c2.chl_value AND c2.chl_element = 'state'
  LEFT JOIN choicelist c3
  ON users.elo_cITY=c3.chl_value AND c3.chl_element = 'city'

这里我多次使用选择列表加入users表,有多个别名(c1 c2 c3)。