日期:2014-05-18  浏览次数:20601 次

mysql多表多条件查询,没有主外键
t_group组别表id Integer 
groupname Variable characters (50) (组别名称:如学生男、教工老年男)
sportsid Integer (运动会id)
grouptype Boolean (组别类型:true学生,false教工)

t_item项目表

id Integer
itemname Variable characters (50) (项目名称)
itemtype Variable characters (1) (项目类型:1径赛;2田赛;3接力)

t_group2item分组与项目对应关系表id Integer
groupid Integer 分组id
itemid Integer 项目id
matchtype Variable characters (1) (比赛类型:1预决赛;2预赛+决赛;3之后留作扩展)

t_player运动员表
id Integer
playernum Variable characters (10)
playername Variable characters (10)(运动员姓名)
playersex Boolean (运动员性别:true男;false女)
groupid Integer(组别id)
registitem Variable characters (255)(该人所报的项目:用;隔开的itemid字符串。比如1;2;3代表报了1、2、3这三个项目)
sp2dpid Integer (运动会-部门联系表id)
t_department参赛部门表
id Integer
departname Variable characters (50)(部门名称)
short Variable characters (10)(系部名称缩写)
departtype Boolean (部门类型:true表示有学生,false表示无学生)
t_sports运动会表
id Integer
sportsname Variable characters (50)(运动会名称)
sportsbegin Variable characters (10)(起始日期)
sportsend Variable characters (10)(结束日期)


t_sports2department运动会与部门对应表id Integer
sportsid Integer (运动会id)
departid Integer (部门id)
teamleader Variable characters (50)(领队)
coach Variable characters (50)(教练)
doctor Variable characters (50)(队医)


t_record竞赛记录表
id Integer 
itemid Integer (项目id)
score Variable characters (50)(成绩)
playername Variable characters (10)(运动员姓名)
departname Variable characters (50)(部门名称)
sportsname Variable characters (50)(运动会名称)
recordtime Variable characters (10)(破记录时间)
recordlevel Variable characters (2) (记录级别:0院级;1省级)


t_position比赛名次表id Integer 
finalitemid Integer (具体组别id)
playerid Integer (运动员id)
position Integer (名次)
score Variable characters (50)(成绩:几分几秒或多少米)

要从比赛的届次,姓名,比赛的系别,比赛的组别,项目类型,参赛项目,是否破记录
在下面的页面中显示查询出来姓名,号码,性别,系别,比赛项目,成绩,名次,破纪录(院级还是省级)这些字段的内容

------解决方案--------------------
太长,不细看了,针对你的题目,我有点建议:
1、检查一下是否真的没必要建主键?外键可以不用,但是主键非常需要。并且觉有很多优点。
2、一般主键可以使用多个字段来组成,所以如果有多个字段能实现“唯一标识一行”,那么就可以做关联。
------解决方案--------------------
Mysql移到相应版块去啊,解决问题更快些,更有效些