--部门表(部门ID,部门名称)
CREATE TABLE Sector(cid int,cname varchar(10))
INSERT INTO Sector VALUES (1, '开发部');
INSERT INTO Sector VALUES (2, '行政部');
--招聘职位表(职位ID,职位名称)
CREATE TABLE Jobs(tid int,tname varchar(10))
INSERT INTO Jobs VALUES (1, '程序员');
INSERT INTO Jobs VALUES (2, '开发部经理');
INSERT INTO Jobs VALUES (3, '行政专员');
--职位上限表(职位上限ID,部门ID,职位ID,人数上限,工资上限)
CREATE TABLE upperLimit (ulid int ,cid int,tid int, maxNum int, Wages int );
INSERT INTO upperLimit VALUES (1,1,1,2,6000);
INSERT INTO upperLimit VALUES (2,1,2,1,10000);
INSERT INTO upperLimit VALUES (3,2,3,1,3000);
问题1:
通过查询开发部的时候,得取该部门要招聘的职位,然后分别上限是多少,怎么实现?
结果:
cid cname tname tmaxNum tWages ttname ttmaxNum ttWages
1 开发部 程序员 2 6000 开发部经理 1 10000
注意:结果可根据招聘职位表的变化而改变,如果去掉开发部经理,那其结果是
cid cname tname tmaxNum tWages
1 开发部 程序员 2 6000
------解决方案--------------------
第一个结果不应该是个列表吗? tname和ttname列在一row里是什么意思?
------解决方案--------------------
数据库只管把数据查出来,怎么显示程序解决
select a.cid,b.cname,c.tname,a.tmaxNum,a.tWages
from upperLimit a inner join Sector b on a.cid = b.cid
inner join Jobs c on a.ulid = c.tid
where b.cid = 1
------解决方案--------------------
+1

------解决方案--------------------
select a.cid,a.cname,b.tname,c.maxnum,c.wages
from sector a, jobs b,upperlimit c
where a.cid = c.cid
and b.tid = c.tid
and a.cname = '开发部'
/*
cid cname tname maxnum wages
----------- ---------- ---------- ----------- -----------
1 开发部 程序员 2 6000