如何用一个sql分别从两个表中查询数据

我记得有一次,我手头有一个临时数据表,需要将里面的数据导入到一个正式的报告中,那会儿我正好手头忙得不可开交。
当时我就面临了这样一个选择:是创建一个新的表直接导入,还是先导出数据,然后再手动导入。
我选择了后者,因为我知道那个临时表的结构复杂,而且我担心如果直接用“select into”可能会引起一些不必要的麻烦。
结果证明我的选择是对的,虽然多花了一些时间,但数据导入得干净利落,没有出现任何问题。
等等,我还突然想到,如果当时我直接用“select into”可能会更快一些,不过安全性上可能要考虑周全一些。

sql 从两个表中的取数据,两个表中的数据都要提取。

嗯,当时我打开数据库管理工具,新建了两个表,一个叫TEST,一个叫TEST1 ,表结构一样,就是想试试自动更新。
然后我开了一个新的SQL查询窗口,创建了个存储过程,目的是把TEST表里的数据自动写到TEST1 点了一下执行,结果出来个触发器,叫T。
代码有点长,我记得是用了USE[PHCTIAOMA]GO,然后一堆代码,最后有个end。
展开表结构一看,果然有T这个触发器。

接下来,我在TEST表里插了一条数据,就写着INSERTINTOdbo.TESTVALUES(&3 9 ;1 &3 9 ;,&3 9 ;Simon&3 9 ;,&3 9 ;2 5 &3 9 ;)。
然后一看,提示说插入数据成功,但是数两次,我当时也懵了。
我再看看TEST1 表,数据果然更新了,这就对了。

sql查双表,表2里有多条数据对应表1如何只取一条?

哎哟,跟你唠唠这个双表查询的事儿吧。
我前几年在一家做电商的公司干,数据量是真不是盖的。
他们那个系统,表一和表二关联着,表二经常一条主键对表一好几条数据。
那时候需求特多,老板要的是,表一的一条数据,表二只能挑最小的那个出来用。

当时我们就琢磨,咋搞才高效呢。
你说的这两种方案,我给你讲讲我碰到的真实场景。

第一种,就是先对表一分组,找每组里mid最小的记录,弄个新表出来。
然后拿这个新表跟表二左连接,把表二中那些mid不是最小的全给筛掉。
再跟表一连接一次,最后就得了。
我记得有回做报表,表一几万条,表二上百万条,用这个方法,跑了好一阵子。
后来优化了一下,还是慢,数据量一上来就卡壳。
那个环境,服务器也就那么点配置。

第二种方案,直接从表二里挑mid最小的记录,搞个新表B出来。
然后拿B跟表一左连接。
这个方法确实快,我试过,大概也就十几秒。
因为就一次连接嘛,逻辑简单。
不过,你要是分页,比如每页要1 0条,表二数据量又贼大,那用这个方法,每次分页都得全表扫描一遍表二,找最小的mid,肯定也慢得要命。
我有个项目,表二有上千万条,分页用这个方法,用户等着都嫌慢。

所以啊,数据量不大的时候,这两种方案其实都行。
我当时那个场景,表一表二加起来也就几十万,用哪种差别不大。
但你得看具体情况。

后来,数据量上来了,表一表二加起来几千万几亿那种,老板又提需求。
这时候咋办?我就琢磨出个第三种,分页+筛选+连接。
先拿表一,分页,比如一页一万个,分成一千页。
每页是个小表A。
然后从表二中,筛选跟A里所有数据关联的记录,搞个表B。
表B的数据量就小多了。
对表B用第一种方法,找每组里最小的mid,形成个小表C。
最后拿小表C跟表一的小表A连接。
这一步,因为A小了,连接就快了。
把所有页都这么搞完,再合并结果。
我试了试,这个方法,几亿条数据,跑了一个小时吧,总算搞出来了。
虽然复杂,但真管用。

当然了,这个方法也挺耗人的,服务器资源得跟上。
我当时用的是那种百十台机器的集群,才能跑下来。

总的来说,这事儿没绝对好的办法,得看你具体数据量,具体需求。
小数据量随便搞,大数据量就得费点心思。
你说的那两种方案,我都在实践中用过,你参考下哈。

页面加载了多个JS文件,包括 jQuery、tangram、log、event 等库和组件。

具体文件:
common-new:widget/lib/jquery/jquery.origin.js
common-new:widget/js/ui/address/sitedata_bas.js
common-new:widget/js/util/event/event.js
common-new:widget/help-team-navigation/popup.es.js
common-new:widget/js/logic/msg-new/listrender.es.js
common-new:widget/js/logic/msg-new/msg-new.es.js
common-new:widget/js/logic/tip-template/tipTemplate.es.js
common-new:widget/js/logic/usergrade/threshold.es.js
common-new:widget/js/logic/usergrade/gradedata.es.js
common-new:widget/js/ui/eff-reply-entry-dialog/eff-reply-entry-dialog.es.js
common-new:widget/js/ui/newDialog/newDialog.es.js
common-new:widget/js/ui/v-flash/js/v-icon.es.js
common-new:widget/js/ui/v-flash/js/flash.es.js
common-new:widget/js/util/domToImage/dom-to-image.es.js
common-new:widget/js/util/monitor/monitor.es.js
common-new:widget/js/util/observer/observer.es.js
common-new:widget/js/util/reptile/captcha.es.js
common-new:widget/js/util/reptile/passMkd.es.js
common-new:widget/js/util/today/today.es.js
common-new:widget/userbar-renew/userbar-renew.js
common-new:widget/search-box-new/search-box-new.js
common-new:widget/footer/footer.js
还有多个 CSS 文件和百度统计脚本。

需要检查文件加载是否成功,特别是 jQuery 和 tangram。