Join Query返回包含Multiple表的单行

时间:2015-11-30 12:27:46

标签: mysql

该查询用于按城市或地区搜索用户

USER_TABLE:

id user_name
1  user 1
2  user 2
3  user 3

第二个表是:

 user_id area_id
   1       1
   1       2
   1       3
   1       4
   3       1
   3       2
   3       3
   3       4

,区域表是:

id area_name
 1  Area 1
 2  Area 2
 3  Area 3
 4  Area 4

它返回记录,但我想用另外一个表加入搜索:

id city_name
 1  Area 

select * 
  from user_table as ut 
         left join second_table as st on ut.id=st.user_id 
         left join area_table as at on st.area_id  = at.id 
 where like at.area_name=%Area% 

1 个答案:

答案 0 :(得分:0)

Heum,如果我理解得很好,您希望向所有用户提供有关城市名称或地区名称匹配搜索的城市和区域的信息。

也许你可以试试:

我想你传递了两个必须匹配的不同值(来自搜索):

SELECT * 
  FROM user_table AS u 
  JOIN city_table AS c ON u.id = c.user_id AND c.city_name LIKE '%City%'
  JOIN area_table AS a ON c.area_id = a.id AND a.area_name LIKE '%Area%' 

每个用户应返回一行。