------distinct 去重复查询 select * from  accounts acc join (select distinct accid from roles) r on r.accid=acc.ID -----不需要distinct select * from (select MAX(ID)roleid,accid from roles group by accid) rr join (select * from accounts) acc on acc.ID=rr.accid…
-------distinct 去重复查询 select * from  accounts acc join (select distinct accid from roles) r on r.accid=acc.ID -----不需要distinct select * from (select MAX(ID)roleid,accid from roles group by accid) rr join (select * from accounts) acc on acc.ID=rr.acci…
两个表关联,用B表的字段更新A表的字段. UPDATE ( SELECT A.COL1 A_COL, B.COL2 B_COL FROM table1 A INNER JOIN table2 B ON A.CD1 = B.CD1 ) SET A_COL = B_COL…
##在资源有限的情况下,如何做两个大表的join? --- 假设系统资源:内存1G,大表10G,小表2G. --- 都拿到内存中进行笛卡尔集肯定不行,内存没有那么大. 最简单的办法是对两个表建索引,但是万一两个索引都很大,一个索引500M,一个索引1G,其实索引应该没有那么大,我们就估算极端情况. 仅对索引进行bitmap scan,最后读取满足的记录.但对两个索引进行扫描时,内存就不够了,怎么处理? 想到办法是用hash jion的方式,对2G小表做hash,可能只占100M.然后循环读取10…
前后台没有分开,为了区分前后台用户,所以分表,但是ID不能重复,因为关联了权限表. 这里实现后台用户表使用奇数ID 前台用户表使用偶数ID MYSQL 没有sequence SET @@auto_increment_offsetSET @@auto_increment_increment 也只能在当前查询有效.所以这也是权宜之计 ; -- ---------------------------- -- Table structure for acl_user -- ---------------…
1. 利用insert ignore into语句去重 mysql> INSERT IGNORE INTO person_tbl (last_name, first_name) -> VALUES( 'J', 'T'); Query OK, row affected (0.00 sec) mysql> INSERT IGNORE INTO person_tbl (last_name, first_name) -> VALUES( 'J', 'T'); Query OK, rows…
说明: MBGL_GZJH jh_id 对应 mbgl_gzjh_fkmx jh_id mbgl_gzjh_fkmx jh_id 有重复多条,但是 FKRQ 不一样,我们去 FKRQ 最新的一条. select * FROM MBGL_GZJH A LEFT JOIN (select BC.* from (select max(FKRQ) as maxrq,JH_ID from mbgl_gzjh_fkmx GROUP BY JH_ID ) AC LEFT JOIN mbgl_gzjh_fkmx…
注意:可排序的列表内元素不可以是字典等复杂数据类型   比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2   还有一种据说速度更快的,没测试过两者的速度差别 l1 = ['b','c','d','b','c','a','a']l2 = {}.fromkeys(l1).keys()print l2   这两种都有个缺点,祛除重复元素后排序变了: ['a', 'c', 'b', 'd']    …
SELECT指令让我们能够读取表格中一个或数个栏位的所有资料.这将把所有的资料都抓出,无论资料值有无重复.在资料处理中,我们会经常碰到需要找出表格内的不同资料值的情况.换句话说,我们需要知道这个表格/栏位内有哪些不同的值,而每个值出现的次数并不重要.这要如何达成呢?在SQL中,这是很容易做到的.我们只要在SELECT后加上一个DISTINCT就可以了. DISTINCT的语法如下: SELECT DISTINCT "栏位名" FROM "表格名" 举例来说,若要在以…
在EF中表连接常用的有Join()和Include(),两者都可以实现两张表的连接,但又有所不同. 例如有个唱片表Album(AlbumId,Name,CreateDate,GenreId),表中含外键GenreId连接流派表Genre(GenreId,Name).每个唱片归属唯一一个流派,一个流派可以对应多个唱片. 1.Join(),两表不必含有外键关系,需要代码手动指定连接外键相等(具有可拓展性,除了值相等,还能指定是>,<以及其他对两表的相应键的关系),以及结果字段. 重载方式(是扩展方…