一个php查询mysql表问题
一个php查询mysql表问题说明::参赛队记录表表名:csb表内容:记录每个参赛队的信息队长1名,助手1名,队成员10名,共12个人,每个人都有4个属性:姓名,性别,年...
一个php查询mysql表问题
说明:: 参赛队记录表
表名: csb
表内容 : 记录每个参赛队的信息
队长1名,助手1名,队成员10名,共12个人,
每个人都有4个属性: 姓名,性别,年龄,城市
参赛队共有 150 个
(意思) 参赛队 队长 队长 队长 队长 助手 助手 助手 助手 队员1 队员1 队员1 队员2 队员2 队员2 队员2 队员2 队员3 队员3 队员3 队员3 ... 队员10
代号 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 ...
(字段) csid dzxm dzxb dznl dzps zsxm zsxb zsnl zsps dy1xm dy1xb dy1nl dy1ps dy2xm dy2xb dy2nl dy2ps dy3xm dy3xb dy3nl dy3ps ...
(属性) char (后面全部一样)
(长度) 10 (后面全部一样)
注意:参赛队除了队长和助手外人数是固定外,队员人数要求上限是10人,也有是说,有的队人数没有10个人,
请专家解决问题:
1, 查询所有参赛队中所有性别为'男'的队员(不包括队长和助手)
2, 查询所有参赛队中所有性别为'男'的队员(包括队长和助手)
3, 查询所有参赛队中所有城市为'湖南'的队员(不包括队长和助手)
看不明白和不会的人不要在这里混操作分,免避真正的高手出现时被一些无知的答案笑晕过去!!! 展开
说明:: 参赛队记录表
表名: csb
表内容 : 记录每个参赛队的信息
队长1名,助手1名,队成员10名,共12个人,
每个人都有4个属性: 姓名,性别,年龄,城市
参赛队共有 150 个
(意思) 参赛队 队长 队长 队长 队长 助手 助手 助手 助手 队员1 队员1 队员1 队员2 队员2 队员2 队员2 队员2 队员3 队员3 队员3 队员3 ... 队员10
代号 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 姓名 性别 年龄 城市 ...
(字段) csid dzxm dzxb dznl dzps zsxm zsxb zsnl zsps dy1xm dy1xb dy1nl dy1ps dy2xm dy2xb dy2nl dy2ps dy3xm dy3xb dy3nl dy3ps ...
(属性) char (后面全部一样)
(长度) 10 (后面全部一样)
注意:参赛队除了队长和助手外人数是固定外,队员人数要求上限是10人,也有是说,有的队人数没有10个人,
请专家解决问题:
1, 查询所有参赛队中所有性别为'男'的队员(不包括队长和助手)
2, 查询所有参赛队中所有性别为'男'的队员(包括队长和助手)
3, 查询所有参赛队中所有城市为'湖南'的队员(不包括队长和助手)
看不明白和不会的人不要在这里混操作分,免避真正的高手出现时被一些无知的答案笑晕过去!!! 展开
2个回答
展开全部
你这个表设计有有问题,建议分为两个表,小队表和成员表。
team表:
CREATE TABLE `team` (
`team_id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`team_name` VARCHAR( 20 ) NOT NULL ,
`team_city` VARCHAR( 20 ) NOT NULL ,
`team_info` VARCHAR( 100 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
member表:
CREATE TABLE `member` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`team_id` INT( 10 ) NOT NULL ,
`role` ENUM( 'header', 'helper', 'member' ) NOT NULL ,
`name` VARCHAR( 20 ) NOT NULL ,
`sex` TINYINT( 1 ) NOT NULL ,
`age` INT( 2 ) NOT NULL ,
`city` VARCHAR( 20 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
这时候所有的查询一目了然:
1. select * from `member` where `sex` = 1 and `role` = 'member';
2. select * from `member` where `sex` = 1 ;
3. select `member`.* from `member`
inner join `team` on `team`.`team_id` = `member`.`team_id`
where `team`.`team_city` = '湖南';
team表:
CREATE TABLE `team` (
`team_id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`team_name` VARCHAR( 20 ) NOT NULL ,
`team_city` VARCHAR( 20 ) NOT NULL ,
`team_info` VARCHAR( 100 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
member表:
CREATE TABLE `member` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`team_id` INT( 10 ) NOT NULL ,
`role` ENUM( 'header', 'helper', 'member' ) NOT NULL ,
`name` VARCHAR( 20 ) NOT NULL ,
`sex` TINYINT( 1 ) NOT NULL ,
`age` INT( 2 ) NOT NULL ,
`city` VARCHAR( 20 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
这时候所有的查询一目了然:
1. select * from `member` where `sex` = 1 and `role` = 'member';
2. select * from `member` where `sex` = 1 ;
3. select `member`.* from `member`
inner join `team` on `team`.`team_id` = `member`.`team_id`
where `team`.`team_city` = '湖南';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询