【问题标题】:Is this mysql query right or wrong?这个mysql查询是对还是错?
【发布时间】:2010-11-08 17:06:24
【问题描述】:
   "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 表 ui 我想要 州城市和国家。

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

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

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

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

【问题讨论】:

  • 你测试过查询吗?它会给你正确的答案吗?在所有软件开发中,您都需要知道您期望您的代码做什么并能够对其进行测试。您通常无法仅通过查看一段代码来判断它是否正确。测试用例是必不可少的。
  • @Cam 我测试了它没有产生值。

标签: java mysql join


【解决方案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 

【讨论】:

  • 我想要关键字的全名。当我使用关键字搜索时。所以我只添加了像关键字这样的全名
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多