sql语句,急..

问题描述

有这样两张表表ACREATE TABLE A ( id number(10) NOT NULL, product_id number(10) not null , company_id number(10) , name varchar2(50) not null, keyword varchar2(50) ,--关键词 content_markup varchar2(50) , sort_number number(4) , ad_type varchar2(50) , is_vitual number(1) not null, description varchar2(255) , biz_state varchar2(20) , sys_deleted number(1) default 0 not null, sys_ts_first number(38) , sys_ts_last number(38) , PRIMARY KEY (id)) ; 表BCREATE TABLE B( id number(10) not null, keyword varchar2(50) not null ,--关键字 synonyms varchar2(100) not null--对应同义词) ;要求是当输入查询条件keyword时就到表A去找这个keyword,如果查询所输入的在表A中找不到,就到表B去匹配它的同义词(如:输入‘咖啡’但在表B的synonyms中有‘咖啡厅’、‘咖啡连锁店’)如果匹配到了,就把匹配到的表B的synonyms字段对应的keyword给查询出来再去匹配表A中的keyword字段判断是否有这个keyword,如果有查询出来!

解决方案

貌似要把最后一句 not in 改成 in
解决方案二:
一个10行当存储过程就能解决问题,而且运行速度还快。何必纠结在一个sql语句上。
解决方案三:
select * from A where keyword='33'unionselect * from A where keyword in(select synonyms from B where keyword='33' and 0 not in (select count(*) from A where keyword='33'))
解决方案四:
这个写存储过程吧.直接写sql好象搞不定这么复杂的逻辑.

时间: 2024-10-30 10:20:37

sql语句,急..的相关文章

select-mybatis加oracle批量insert中的序列问题,可不可以用union做批量的sql语句--急

问题描述 mybatis加oracle批量insert中的序列问题,可不可以用union做批量的sql语句--急 <insert id="saveManyPopInfo" parameterType="java.util.List"> insert into popinfo (popid,popname,remark) select seq_popid.nextval,p.* from ( <foreach collection="lis

sql-oracle SQL语句 急!!

问题描述 oracle SQL语句 急!! 问一下,我想将一个表的一列值减去另一个表里的一列,并将值插入到其中一个表的一列,该怎么写 解决方案 insert into tables(xx) select aa-bb from t1,t2 where t1.a=t2.b 解决方案二: Oracle中SQL语句的性能优化Oracle(一)--------------基本sql语句高效率优化Oracle SQL语句----------------------

求助 nhibernate 执行sql语句 急!!!

问题描述 stringstrHQL="updateTRANSLINETESTtsett.etl_oilqtyvolumeset=(selectdep.dep_fromeamcodefromrm5departdepwheredep.dep_code='"+dept+"')'";publicIListGetSQLType(stringstrHQL,PageUtilpage){ISessionsession=SessionFactory.OpenSession(_Asse

检测排课冲突的SQL语句设计问题 急急急

问题描述 检测排课冲突的SQL语句设计问题 急急急 "Select A.*B.* FROM ABC AS A,ABC AS B WHERE a.ID<>b.ID and a.SKXQID=b.SKXQID and a.XQID=b.XQID and a.EZC>=b.BZC and ····························· 这是一个单表查询 表名为ABC 表大致是 课程 老师 班级 上课时间.地点 XX XX XX XXXX ··· ··· ··· ··· 这

sqlserver-求各位大神给一条sql语句,急急急!!!

问题描述 求各位大神给一条sql语句,急急急!!! 我用的是sqlserver数据库,我希望完成这样的功能,有个数据库Test,里面有三张表ABC,我对其中的一张A表进行的分区,另外两张表没有分区,我希望通过sql语句查询到已经分区的表,就是要返回表A,只需获得表A的名称就行了.

SQL语句题:存储过程、触发器的定义【急求解,会的大神帮忙给下正确答案!多谢】

问题描述 SQL语句题:存储过程.触发器的定义[急求解,会的大神帮忙给下正确答案!多谢] 设职工数据库中有如下两个表: 职工表:EMP(P#,PN,D#,SALARY)//属性含义依次为:工号,职工号,部门号,工资 部门表:DEPT(D#,DN,MR)//属性含义依次为:部门号,部门名,部门经理 请按要求完成以下工作: 1.设计一带参数的存储过程,根据该参数指定的部门号,查询该部门所有职工的工资总和. 2.设计一触发器,该触发器能够保证当职工表中添加新纪录时,部门编号必须已经存在于部门表中. 解

查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊、、

问题描述 查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊.. 一个是众酬表,一个是会员表,还有个这两者的中间表. 会员可以参与多个众酬 众酬可以被多个会员参与 1.会员角度:会员登录,要查询当前所有的众酬列表并且标记哪些众酬当前会员已参与 2.众酬角度:进入某个众酬详情可罗列当前参与此众酬的会员列表 解决方案 这取决于众筹表怎么设计 解决方案二: select *,(select count(1) from 众筹会员表 where id=z.id) as canyu from 众筹表

sql 语句中字符类型的转换问题,在线等!!!急!!!

问题描述 sql 语句中字符类型的转换问题,在线等!!!急!!! select 'http//'+ID+'.html' as LINK from A ID的字符类型是bigint的,出现错误提示:"从数据类型 varchar 转换为 bigint 时出错."求解决语法!!! 解决方案 select 'http//'+convert(varchar(20)ID)+'.html' as LINK from A 解决方案二: select 'http//'+cast t(ID as varc

oracle goldengate-mybatis 打印的Sql语句可以再数据库查询到数据,但是没有返回结果?【急】

问题描述 mybatis 打印的Sql语句可以再数据库查询到数据,但是没有返回结果?[急] <select id="selectPageTblSfFiles" parameterType="TblSfFile" resultMap="TblSfFileResult"> SELECT <include refid="TblSfFile_columns" /> FROM TBL_SF_FILE WHERE