这个mysql查询是对还是错?

时间:2010-11-08 17:06:24

标签: java mysql join

   "select full_name from user u join user_contact_info ui on ui.user_id=u.user_id,
   ui.user_contact_state, ui.user_contact_city_town, ui.user_contact_country where 
   u.full_name like '"+keyWord+"%'" + "and u.user_id = "+id;

从我的用户u表我想要全名,从我的user_contact_info表我想要的 州和城市。

我是否正在编写连接查询以根据id获取所有值。我想知道是不是 正确编写查询或不正确。如果错了我该怎么写呢。请帮我写连接查询。

同样在结果集中,如果我使用单个表,如何获取值 我会把我的写作

  if(rs.next()){
  User user = new User();
  user.setFullname(rs.get(full_name);
  }

如果使用第二个连接表,如何获取和设置对象中的值。

1 个答案:

答案 0 :(得分:1)

"select u.full_name, ui.user_contact_state, ui.user_contact_city_town, ui.user_contact_country 
from user u 
left outer join user_contact_info ui on ui.user_id=u.user_id 
where u.full_name like '"+keyWord+"%'" + "and u.user_id = "+id 

注意:您可能不需要在WHERE子句中进行full_name比较,因为我假设user_id对于每个用户是唯一的,因此将为您提供正确的记录。

以下查询应该是您所需要的:

"select u.full_name, ui.user_contact_state, ui.user_contact_city_town, ui.user_contact_country 
from user u 
left outer join user_contact_info ui on ui.user_id=u.user_id 
where u.user_id = "+id