在PostgreSQL上对SDB内的两个集合进行关联(JOIN)查询。要求如下:
1.为两个集合在PG内创建两张外表;
2.查看创建的两张外表的表结构;
3.JOIN关联查询需要走索引;
创建两张外表:
CREATE FOREIGN TABLE student
(
sid int,
sname text,
sage text,
ssex text,
cid text,
sprovince text,
scity text,
sphone text,
semail text
)
SERVER sdb_server
OPTIONS ( collectionspace 'pratice4', collection 'student', decimal 'on' );
CREATE FOREIGN TABLE class
(
cid int,
cname text,
avgChinese text,
avgMath text,
avgsEnglish text,
avgsBiology text,
avgsChemistry text,
avgsPhysics text
)
SERVER sdb_server
OPTIONS ( collectionspace 'pratice4', collection 'class', decimal 'on' );
查看两张表的结构:
\d student
\d class
两表内JOIN关联查询
创建索引
var db=new Sdb()
db.pratice4.student.createIndex("cidIdx",{cid:1},false,false);
db.listIndexes()
关联查询:
select s.sid,s.sname,c.cname from student s inner join class c on CAST(s.cid AS int)=c.cid limit 20;