问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...会显示多条重复的,但是实际表中数据又只有一条,是什么问题?该怎么改...

发布网友 发布时间:2023-12-28 02:27

我来回答

5个回答

热心网友 时间:2024-10-03 11:52

你又不是只查一张表, 你是多表关联了。
实际表中数据又只有一条,是你某一张表这样吧, 
关联后,这一条数据可能跟别的表都能关联上,所以就会变成多条了。
如果select 出来的项全相同,你可以distinct
追问 : 对,就是像你说的一条数据跟别的表都能关联上,但是该怎么解决呢? distinct我加在select后面,ID前面又报错,该怎么解决?

追答 : distinct不能用就按下面的,select 后面多少项 group by 后面就写多少as 前面的 select a as A, b as B, c as C from ... left joing ... where.. group by a,b,c

热心网友 时间:2024-10-03 11:58

子查询就是查询中又嵌套的查询,表连接都可以用子查询,但不是所有子查询都能用表连接替换,子查询比较灵活,方便,形式多样,适合用于作为查询的筛选条件,而表连接更适合与查看多表的数据。

子查询不一定需要两个表有关联字段,而连接查询必须有字段关联(所谓的主外键关系)

表关联的效率要高于子查询,因为子查询走的是笛卡尔积
表关联可能有多条记录,子查询只有一条记录,如果需要唯一的列,最好走子查询
对于数据量多的肯定是用连接查询快些,原因:因为子查询会多次遍历所有的数据(视你的子查询的层次而定),而连接查询只会遍历一次。

但是数据量少的话也就无所谓是连接查询还是子查询,视自己的习惯而定。一般情况下还是用子查询来的好,容易控制

为什么子查询比连接查询(LEFT JOIN)效率低
MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作。子查询虽然很灵活,但是执行效率并不高。
那么问题来了,什么是子查询?为什么它的效率不高?
子查询:把内层查询结果当作外层查询的比较条件

热心网友 时间:2024-10-03 11:51

select distinct

热心网友 时间:2024-10-03 11:56

你又不是只查一张表, 你是多表关联了。
实际表中数据又只有一条,是你某一张表这样吧, 
关联后,这一条数据可能跟别的表都能关联上,所以就会变成多条了。
如果select 出来的项全相同,你可以distinct

热心网友 时间:2024-10-03 11:56

首先附上代码:

public List<YbReview> findSome(Integer articleid)throws Exception{
List<YbReview> list=new ArrayList<YbReview>();
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
YbReview ybReview=null;
YbUser ybUser=null;
try{
con=DBUtil.getDb();
String sql="select a.user_name,b.* from yb_user a,yb_review b where a.user_id=b.user_id and b.article_id=? order by review_datetime desc";
pstmt=con.prepareStatement(sql);
pstmt.setInt(1,articleid);
rs=pstmt.executeQuery();
if(rs.next()){
ybReview=new YbReview();
ybUser=new YbUser();
ybUser.setUsername(rs.getString("user_name"));
ybReview.setReviewid(rs.getInt("review_id"));
ybReview.setArticleid(rs.getInt("article_id"));
ybReview.setReviewContent(rs.getString("review_content"));
ybReview.setReviewdatetime(rs.getDate("review_datetime"));
ybUser.setUserid(rs.getInt("user_id"));
ybReview.setYbuser(ybUser);
list.add(ybReview);
}
}finally{
DBUtil.CloseDataBase();

}

return list;
}
2 然后,我就很郁闷了,明明是多条记录,可是出来的JSP页面上总是只有一条记录,看了SQL语句也正确啊,找了很久才发现是
if(rs.next()){的问题,将if改为
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
云顶s7有变形重组器吗? 云顶之弈棋盘怎么买 《云顶之弈 巨龙之境》系列道具限时销售公告 霍金死前留下的7个预言,三个正在上演 霍金七大预言是什么 康熙来了说的经痛布偶抱枕的那只牛是什么牛 常旅客计划常旅客计划 常旅客计划的介绍 女人叫你哥哥的暗示? 请问各位老师,这是什么病害? 北京自助烧烤 ...也有女朋友,可他一直都还向我身边的朋友打听我的消息,这代表什麽... 控制台能打印出sql语句,但是在数据库中却没加进去数据,我问了很多人... 长长长长长长长,下联 如何判断一个是否被注销了呢? 功夫狂飙游戏 outlook本地电脑接收发送邮件问题 微信重新注册了,怎么找回以前那个? 电脑开机一直启动修复怎么办 ps cc为什么我的默认选项里没有单行和单列选框工具,怎么调出来,谢谢... 一个数除以零点几这个零点几的零在列竖式时一定要花掉吗? wii 太鼓达人用的太鼓还能用来玩其它什么游戏吗? 大神们,在小摊上买25一盆的花。是玫瑰花还是月季花。求解答。 3m净水器134灯亮了 关于英语中的被动语态 没有被动语态的单词或者是词组 30岁想学护士去哪里学 如何判断是否被注销了? 形容心情很低落的词语成语 形容心情很低落的词语成语有哪些_百度... 处暑节气该如何养生? 在深圳已经做了9年的模具设计,感觉模具行业越来越不景气,该如何规划职 ... ...和做》选段,回答l—5题。 (1)“人家说了再做,我是做了再说。” (2... 中科联建太阳能发电申请分布式光伏发电 奶奶的孙子能给奶奶娘家人过继吗 同一个怎么在两个手机同时在线? 在冰上撒尿过一会白了怎么回事 深圳市中科联合通信技术有限公司电话是多少? 手机用了两年了 .耗电特别快.是因为什么原因?是不是因为电池老化了,电 ... ...在液晶屏上显示与PC通讯的数据,怎么在每次接收数据的时候LCD... 金曜石和朱砂可以一起佩戴吗 你太可恶了用日语怎么说 oppor15和r15梦镜版的区别有哪些? word中 执行“插入”菜单中的“分隔符”命令,在对话框中选中“分栏符... 婆婆说我脾气古怪,请问大家知道是什么意思吗 ...长长长长长长长&quot;这是卖豆芽老头写的一副对子,怎么读啊 玩3D游戏卡死了 应该换什么显卡啊 我这电脑,玩3D游戏,卡卡的,想换个可以玩3D游戏的显卡,麻烦告诉我换什么... R15和R15梦镜版有啥区别啊? 舅舅1947年牺牲,是烈士,后外孙过借给外婆,随舅舅姓,外婆是烈属,外孙算... ...右手带金曜石的手链,犯什么风水之类的忌讳吗?犯拘禁格吗?_百度知 ...