精华内容
下载资源
问答
  • 我有四个:前三个分别为活动(activity),博客(blog)和课程(course),结构基本一样,都是发表内容的,有title和content字段,第四个为动态(dynamic),当用户参加活动,发表博客和学习课程的时候,...

    我有四个表:前三个分别为活动表(activity),博客表(blog)和课程表(course),表结构基本一样,都是发表内容的,有title和content字段,第四个表为动态表(dynamic),当用户参加活动,发表博客和学习课程的时候,都会在动态表中进行记录,动态表中有type字段表示此条记录是用户什么行为(活动,博客,课程),itemid字段表示此条记录的行为在他们自己表中的id,如type=1,itemid=2就表示活动表中id为2的记录在动态表中留下的记录,

    现在我要显示用户动态列表,根据type字段去取不同表中的title和content字段 ,用case when不太会用,想讨教一下:

    我是这么写的:

    select d.id,d.uid,d.createtime,

    case 

      when d.type==1 then //活动

       select a.title,a.content from activity a where  a.id=d.itemid

     when d.type==2 then //博客

     select b.title,b.content from blog b where b.id=d.itemid;

    where d.type=3  then //课程

     select c.title,c.content from course c where c.id=d.itemid

    from  dynamic d 




     我喜欢这样写

    select d.id,d.uid,d.createtime, 
        case  
           when d.type==1 then //活动 
             a.title,a.content 
           when d.type==2 then //博客 
             b.title,b.content
           where d.type=3  then //课程 
             c.title,c.content
        end 
    from  dynamic d  
    left join  activity  a
    on  a.id=d.itemid 
    left join  blog b
    on   b.id=d.itemid
    left join  course c
    on  c.id=d.itemid

    http://www.oschina.net/question/147939_128410?sort=time



    展开全文
  • a a.id,a.count b b.id ,b.to_id,b.from_id,b.rel 其中 a.id=to_id u u.userid, u.name c c.id,c.userid d d.id, d.userid f f.id,f.userid 其中 if (b.rel =“c ”)b.from_id=c.id else if (b.rel =...
  • !... 如图所示,这大概就是数据,里面有五列数据 ...在另一个中,我有单独的一列数据用来作鉴别 ...只有数据中的跟那一列数据中的相同才属于正常 那么该如何筛选数据不正常的呢?
  • 我们都知道CAS在登录成功后会返回一些我们所需要的来提供给各个客户端,有一种情况就是根据不同的情况我们要查询不同来进行反馈信息,比如说 当 是管理员登录的时候返回的可能是从A中查询的数据,当普通用户...

    我们都知道CAS在登录成功后会返回一些我们所需要的值来提供给各个客户端,有一种情况就是根据不同的情况我们要查询不同的表来进行反馈信息,比如说 当 是管理员登录的时候返回的可能是从A表中查询的数据,当普通用户登录的时候可能返回的是B表中的信息,CAS怎么才能实现这种需求呢?现在我们就实现这种需求,需要修改deployerConfigContext.xml 配置文件,也需要修改源码,现在我们现讲怎么修改配置文件,其实很简单 我们配置返回登录信息的配置如下:

    <property name="credentialsToPrincipalResolvers">
    	<list>
    			<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" >
    				<property name="attributeRepository" ref="attributeRepository" />

                                    <property name="attributeRepository1" ref="attributeRepository1" />
    			</bean>				
                            <bean class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" />
    	</list>
    </property>
    

    下面是配置的attributeRepsoitory和attributeRepsoitory1两个Bean

    <bean
    		class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao"
    		id="attributeRepository">
    		<constructor-arg index="0" ref="casDataSource" />
    		<constructor-arg index="1"
    			value="select * from A where {0}" />
    		<property name="queryAttributeMapping">
    			<map>
    				<!-- key对应username,value对应数据库用户名字段 -->
    				<entry key="username" value="loginname" />
    			</map>
    		</property>
    		<property name="resultAttributeMapping">
    			<map>
    				<!--key为对应的数据库字段名称,value为提供给客户端获取的属性名字,系统会自动填充值 -->
    				<entry key="A" value="A" />
    				<entry key="AA" value="AA" />
    			</map>
    		</property>
    
    	</bean>
    <bean
    		class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao"
    		id="attributeRepository1">
    		<constructor-arg index="0" ref="casDataSource" />
    		<constructor-arg index="1"
    			value="select * from B where {0}" />
    		<property name="queryAttributeMapping">
    			<map>
    				<!-- key对应username,value对应数据库用户名字段 -->
    				<entry key="username" value="loginname" />
    			</map>
    		</property>
    		<property name="resultAttributeMapping">
    			<map>
    				<!--key为对应的数据库字段名称,value为提供给客户端获取的属性名字,系统会自动填充值 -->
    				<entry key="B" value="B" />
    				<entry key="BB" value="BB" />
    			</map>
    		</property>
    
    	</bean>

    以上就是配置文件部分的修改(该部分修改时基于原来返回信息的配置基础上增加的一个attributeReponsitory1 而已)

    下面讲一下源码怎么修改

    在org.jasig.cas.authentication.principal.AbstractPersonDirectoryCredentialsToPrincipalResolver这个类中有如下代码:


    @NotNull
        private IPersonAttributeDao attributeRepository = new StubPersonAttributeDao(new HashMap<String, List<Object>>());
    
    

    看到上述代码相比就知道了上述配置文件中  <property name="attributeRepository" ref="attributeRepository" />


    这句话的作用了,所以我们就参照这个attributeRepository 的定义,我们也定义一个类似的 attributeRepository1,如下:

    private IPersonAttributeDao attributeRepository1 = new StubPersonAttributeDao(new HashMap<String, List<Object>>());
     public final void setAttributeRepository(final IPersonAttributeDao attributeRepository1) {
            this.attributeRepository1 = attributeRepository1;
        }
    


    这样注入Bean 就完成了,下面就可以具体的应用了,还是在这个类中,找到下面的代码:

     final IPersonAttributes personAttributes = this.attributeRepository.getPerson(principalId);

    这句代码的作用就是根据username查询返回的信息,
    根据配置我们可以这样改造这句话,假定有一个loginrole 参数 为1的时候执行attributRepository1这个bean

    int loginrole = 1;
     final IPersonAttributes personAttributes = loginrole ==1?this.attributeRepository1.getPerson(principalId):this.attributeRepository.getPerson(principalId);
    
    //这样就完成了如果查不同的表返回登录信息


    以上纯属个人应用总结的方法,不一定是最合适的也不一定是最正确的。


    
      
    
    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201604/13/1460537163_398294.jpg)查询name为‘xiaofengceshi’的不同aucid的最大now_price(结果为两条,aucid为1和3)
  • mysql 一个内根据字段对应值不同查询统计总数 posted @ 2018-08-14 14:12 戎码壹生 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    Control Flow Functions

    • CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END

    SELECT * FROM table LEFT JOIN x ON x.id = table.id LEFT JOIN (SELECT id, CASE table.x WHEN 1 THEN "tablea" WHEN 2 THEN "tableb" WHEN 3 THEN "tablec" END FROM tablex) AS tmpe ON tmpe.id = table.n WHERE table.id = "hello" LIMIT 1;
    

    转载于:https://my.oschina.net/yeahlife/blog/1837550

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • java Mysql的跨服务器不同表结构的联合查询,两不同服务器上的不同表查询
  • 表查询,查询表中某字段相同的数据
  • 根据不同条件查询不同表

    千次阅读 2018-07-11 11:03:37
    https://bbs.csdn.net/topics/390214152
  • 一:数据库 deed_records sport_records match_ticket_record vp_situation ...SELECT d.integral , CASE WHEN d.deed_type=1 THEN (SELECT s.user_id FROM sport_records s
  • 如上主是 Mem_Truck 我想根据 Mem_Truck 的TransStatus的来确定我要查询CargoSource还是 Mem_TrackApp。注意看,关联的不一样返回的列也不一样。这里TransStatus 有'OnWay'和'Other'两个,不是很熟悉sql ...
  • 一.数据库数据数据 deed_records sport_records match_ticket_record ...SELECT d.integral , CASE WHEN d.deed_type=1 THEN (SELECT s.user_id FROM sport_records s WHERE s.id=d.record_id)
  • (CASE WHEN PI.PAGE_TYPE_ID = ‘002’ THEN CP.TITLE else GT.f_goods_type_name END) GOODS_SOURCE
  • sql统计查询——求不同类别的平均

    万次阅读 热门讨论 2015-10-18 10:24:49
    需求:分值表,均是学生给老师的打分,每个老师的记录数目未知,统计各老师的平均分值。 这是我最近做项目时遇到的一个问题,那么如何统计呢? 简化下需求:   分别求出上图ID为1、2、3的分数平均。 你想到...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 需求:我想根据不同的条件,去查询某个中同一个字段的不同的sum解决:1、首先有3张表,如下图2、问题:我想查询fina_finaflow 中finaflow_amount两个不同条件不同的sum。3、方案:sql语句如下:select sum...
  • 查询各个测站点最新的一条记录: 第一种查询语句: if(!isNull(stcd)){ //某个测站点最新的一条记录 sql.append("select a.* from dt_water_level a where not exists(select 1 from dt_water_level where ...
  • 根据表字段left join 不同

    千次阅读 2017-12-27 10:35:00
    1.在left join 的后面将两张union all连接为一张,并加上“区分关键字”,然后根据“区分关键字”筛选我们需要的数据 2.使用两个left join, 每个left join 跟上一张,并加上“区分关键字”,然后在 on ...
  • SQL查询一个中类别字段中最大对应的

    万次阅读 热门讨论 2017-01-22 15:51:14
    SQL查询一个中类别字段中最大对应的 一、SQL查询一个中类别字段中最大对应的(对一张的操作): 问题:根据教师id查询checkOutAutoID最大的一条记录里的上期余额? 探索: 1.group by方法: 首先...
  • 有两张 A,B,都有字段 id, 查询A中所有的 A.id 在 B中也存在的记录
  • 订单orderid里保存的买家卖家都只是对应的用户user里的ID,一开始的时候只是想到联表查询,拿到卖家或买家的名字,然后在用foreach查出另外一个对应的,这样的效率太低,制造的垃圾代码也多. 如果要一次...
  • 需求: 数据中存入的数据,字段–Error(枚举)表示错误类型。现统计出现每种错误发生的次数。 sql语句 select error ,count(*) as num from excpetionTable group by error 用error 进行分组,并用count...
  • 比如a(id,a1,a2) b(id,b1,b2,a_id) c(id,c1,c2,b_id)三个,当a1的length为2时,查a2,b2,当a1的length为3时,查询a2,b2,c2 sql怎么写呢
  • 最近在工作的时候突然想到了一个问题,就是mysql如何才能实现批量更新多条记录的同一个字段为不同值,发现其中的学问还是挺多的,所以就把网上总结下来分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
  • postgresql中实现查询某字段总数量和该字段不同值各自的数量
  • A如下 ![A图片说明]...在B中查询A中**id相同的value** 如图查询后的A内容 ![执行后的A图片说明](https://img-ask.csdn.net/upload/201710/13/1507879841_246889.png) sql应该怎么写?
  • 需求:需要在一张中,查询某个店铺05-17和05-10两天的同一个GMV字段数据遇到问题:在测试过程中发现,如果两天中任意一天没有数据,则该店铺整体数据均不显示解决代码:SELECT a.Seller_nick, IFNULL(a.GMV, 0),...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 657,607
精华内容 263,042
关键字:

不同的值查询不同的表