通过两张表查询数据的效率咨询

问题描述

问一下,我需要根据条件去两个数据表中取数据。我是先从一个表中取出数据后通过利用forallentriesin去另一张表中取数据效率高呢,还是通过innerjoin连接两张数据表取数据效率高呢,很是迷茫,还请高手指点,十分感谢……

解决方案

解决方案二:
这个要看具体情况,通常情况下如果两张表的关联都是关键字段时可以直接使用innerjoin,对于有些不是透明表(如簇表)是必须使用forallentriesin的。
解决方案三:
如果就是两张自己建的普通的表呢,比如说整两个表的关联字段有一张表中是主键另一张表中不是,或者是在两张表中都不是主键这怎么区分呢??还请指点……
解决方案四:
一般来讲,还是用Forentriesin吧,很多项目是不允许用innerjoin的,原因嘛,新手容易出差,而且,有数据问题不太好查.从效率上看,如果都用Key或index字段来做join的话,效果会比forentriesin好点,两个表或三个表的情况,再多是绝对禁止的.从可读性和可维护性上考虑,Forentriesin是首选.
解决方案五:
一条sql取出数据是最好的,别执行多次sql就好。
解决方案六:
效率上一般来说差不多,但是从可维护性和可读性上来说,绝对建议用FORENTRIESIN.
解决方案七:
大数据建议用JOIN,如果数据量不大建议用ForAllEntriesIn。
解决方案八:
啊实打实大道
解决方案九:
SASAAS洒洒洒

时间: 2024-10-21 13:26:50

通过两张表查询数据的效率咨询的相关文章

对象-两张表查询 结果集set的时候怎么处理 表A 和表B 是两个不同的实体

问题描述 两张表查询 结果集set的时候怎么处理 表A 和表B 是两个不同的实体 String sql = ""SELECT * FROM CLOUD_BOBA_BLOG_CATE""; PreparedStatement pstmt = null ; DataBaseConnection dbc = null ; try{ // 连接数据库 dbc = new DataBaseConnection() ; pstmt = dbc.getConnection().p

listview-将两张表的数据展示在一个ListView中

问题描述 将两张表的数据展示在一个ListView中 数据库中的数据如图所示,一共有5张表,三个数据表以及两个关系表.我现在需要将所有的project和exam读取出来然后将其中的name和description显示在同一个ListView中,根据数据表中的session sort no来排序. 现在的问题: 1.如何同时读取所有的exam和project数据并根据session sort no来排序呢?因为数据比较多,所以应该不会一次性完成读取,而是用类似SimpleCursorAdapter

更新表-sql 如何在建立一个存储过程时更新两张表的数据?

问题描述 sql 如何在建立一个存储过程时更新两张表的数据? create proc proc2 ( @OrderID int, @BookID varchar(20),--更新 orderInfo quantity:更新 orderSheet payment @BookStock int ) as update orderSheet set payment = b.newpay FROM orderInfo,orderSheet,(select (payment + price * @Book

mysql关于两张表查询的问题

问题描述 mysql关于两张表查询的问题 我现在有两张表 iislog ips_global 想根据iislog表查询出来的IP地址,得出对应的归属地,请问这语句该怎么写啊? 解决方案 如果没有关联,可以这么写 select g.ip_location, g.ip_isp from ips_global g left join iislog l on l.id=1 where g.ip_start<=l.client_ip and g.ip_end >= l.client_ip id是主键,可

oracle10-关于oracle同时往两张表添加数据的问题

问题描述 关于oracle同时往两张表添加数据的问题 语句如下 declare sacn varchar2(15) :='111'||lpad(seq_no.nextval,12,0); begin insert all into customer(costomer_no,costomer_type) values(sacn,'P') into person(costomer_no,name,tel,address) select ****,ps.name,ps.tel,ps.address f

怎嘛快速比较两张表的数据差

问题描述 现在有A和B两张表,A表字段:a1b1c1d1B表字段:a1c1假如说A表有1000条数据B表有800条数据其中A表a1和c1和B表中a1和c1字段值相同的数据有500条怎嘛用sql查出来A表a1和c1和B表中a1和c1值不同的数据 解决方案 解决方案二:select*fromAwherea1notin(selecta1fromB)andc1notin(selectc1fromB)解决方案三:notexists判断.解决方案四:select*fromAjoinBonA.a1<>B.a

在VB中,同时修改两张表的数据,我试了好久它就是修改一张,哪位帮帮忙?

问题描述 呵呵,帮帮忙 解决方案 解决方案二:这也叫问题?难怪没人回答,连问问题都不会解决方案三:用两条sql语句,一条不行解决方案四:用兩個Update語句就可以了解决方案五:你把你的代码列出来,让大家看!!解决方案六:该回复于2008-05-06 16:55:32被版主删除解决方案七:引用3楼hurtsobad的回复: 用兩個Update語句就可以了 解决方案八:楼主的意思是不是将两张表关联,更新主表,从表也相应的更新呢?OTZ问题问得好笼统解决方案九:使用触发器吧

能不能同时向sql数据库两张表插入数据

问题描述 求存储过程或者语句也可,,,谢谢... 解决方案 解决方案二:两条sql不就行了insertA....insertB....解决方案三:所谓的同时是什么意思,原子操作?那要用存储过程加表锁了.如果说是必须同时成功,或同时失败.那就用事务.解决方案四:对了也可以用触发器来作解决方案五:两表有关系的话,需要加入事务处理.如果一旦失败,可以回滚操作.解决方案六:引用1楼bdmh的回复: 两条sql不就行了insertA....insertB.... ++简单省事解决方案七:引用楼主dupen

sql-如何将数据库表的两张表进行合并查询

问题描述 如何将数据库表的两张表进行合并查询 有两张表,数据列均不一样,要将两张表的数据合并到一起,想应的sql怎么拼接呢?求大神解答,不胜感激! 解决方案 你想怎么合并? 如果是按照关系合并,可以这么写 select a.*, b.* from a join b on a.id = b.aid 如果是数据合并(假设两个表都有 相同列1 相同列2 两个字段),那么可以这样 select a.相同列1, a.相同列2 from a union select b.相同列1, b.相同列2 from