我这有两个表,
人员性信息表
name bookId
小强 1,2,4
小明 1,4
成龙 2
周星星 1,2,5书信息表bookId bookName
1 java
2 sql
3 ora
4 php
5 jsp现在要求是根据 bookName的名称,模糊查询出人员姓名,(如:bookName=java)应该查出, 小强,小明,和周星星,请问个位用SQL语句怎么过实现?
人员性信息表
name bookId
小强 1,2,4
小明 1,4
成龙 2
周星星 1,2,5书信息表bookId bookName
1 java
2 sql
3 ora
4 php
5 jsp现在要求是根据 bookName的名称,模糊查询出人员姓名,(如:bookName=java)应该查出, 小强,小明,和周星星,请问个位用SQL语句怎么过实现?
解决方案 »
- 数据位数问题
- 有一个现成的从oracle数据库倒出的*.dmp的数据库文件(带有log文件,都是完整的),如何在一个新的安装的Oracle 10g的数据库系统中把这个数据库文件倒入!
- 急需oracle8下的oci.lib,oci.h文件,望能发给我一份
- 统计报表的时间和数据锁定时间
- Oracle connect string problem
- sql取定量数据的问题,急急急,在线等结果请高手们指定
- 关于存储过程的参数问题?急!急!急!
- 急,关于授权的问题!
- 谁有accp第2学期的教材闲置不用的,可以卖给我吗?地点在上海,qq;121196370
- oarcle里面获取某一张表的所有字段的名称以及字段类型的sql语句怎么写?
- oracle的统计问题
- oracle全文检索能根据文件路径检索吗???
WITH c AS (SELECT b.bookid bookid FROM shu b WHERE bookname='java')
SELECT a.NAME FROM jieshu a,c WHERE INSTR(a.bookid,c.bookid)>0;
from tableA a,book b
where b.book_name='java' and a.bookId like '%'||to_char(b.book_id)||'%'
FROM 人员信息表 P,书信息表 B
WHERE 书名 = 'java' AND instr(P.ID,B.ID) > 0;
SQL> with person as (
2 select '小强' name,'1,2,4' bookid from dual union all
3 select '小明','1,4' from dual union all
4 select '成龙','2' from dual union all
5 select '周星星','1,2,5' from dual
6 ), book as(
7 select '1' bookid,'java' bookname from dual union all
8 select '2','sql' from dual union all
9 select '3','ora' from dual union all
10 select '4','php' from dual union all
11 select '5','jsp' from dual)
12 select b.bookname,wm_concat(p.name)
13 from person p,book b
14 where instr(p.bookid,b.bookid)>0
15 group by b.bookname
16 /
BOOKNAME WM_CONCAT(P.NAME)
-------- --------------------------------------------------------------------------------
java 小强,小明,周星星
jsp 周星星
php 小强,小明
sql 小强,成龙,周星星
bookId bookName
1 java
2 sql
3 ora
4 php
5 jsp
...
10 .net
11 mysql如: instr(','||人员信息表.bookId||',',','|| 书信息表.bookId||',')>0