SQL题(user,car,pet)

 

CREATE TABLE `user`  (
  `userid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `age` int(11) NULL DEFAULT NULL,
  `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `weixin` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `income` int(255) NULL DEFAULT NULL,
  `marry` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `character` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `vip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`userid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `user` VALUES ('user001', '小赵', '', 30, '135xxx', NULL, 800000, '', '外向活泼', '');
INSERT INTO `user` VALUES ('user002', '小钱', '', 25, NULL, 'qhaha', 299800, '', '泼辣', '');
INSERT INTO `user` VALUES ('user003', '小孙', '', 180, '188xxx', 'S1233', 49400, '', '只有照片了', '');
INSERT INTO `user` VALUES ('user004', '小李', '', 55, '185xxx', NULL, 595000, '', '帅哥一名', '');
INSERT INTO `user` VALUES ('user005', '小周', '', 33, '186xxx', 'Z666', 120000, '', '气质优雅', '');


CREATE TABLE `car`  (
  `carid` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `userid` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `car` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `license` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `totalvalue` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`carid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `car` VALUES ('car001', 'user001', '沃尔沃', '京N880066', '400000');
INSERT INTO `car` VALUES ('car002', 'user001', '奔驰', '辽A99999', '1000000');
INSERT INTO `car` VALUES ('car003', 'user004', '帕萨特', '京P77766', '300000');


CREATE TABLE `pet`  (
  `petid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `userid` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `pet` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `color` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `price` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`petid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `pet` VALUES ('pet001', 'user002', 'dog', 'white', '2000');
INSERT INTO `pet` VALUES ('pet002', 'user003', 'bird', 'red', '6000');
INSERT INTO `pet` VALUES ('pet003', 'user004', 'monkey', 'black', '50000');

答案:

###### 111
SELECT a.license,count(b.petid) FROM car a LEFT JOIN pet b ON a.userid = b.userid GROUP BY a.license ORDER BY count(b.petid)

###### 222
SELECT a.gender,count(b.gender) FROM (
    SELECT gender FROM user GROUP BY gender
) a LEFT JOIN 
(
    SELECT gender FROM user WHERE income < 100000 
) b ON a.gender = b.gender
GROUP BY a.gender 

###### 333
SELECT a.userid,a.income-b.sub_money FROM user a INNER JOIN (
    SELECT userid,price*0.1 as sub_money FROM pet 
) b ON a.userid = b.userid

UPDATE user a INNER JOIN (
    SELECT userid,price*0.1 as sub_money FROM pet 
) b ON a.userid = b.userid
SET a.income = a.income-b.sub_money

 

posted @ 2021-04-15 16:24  唐胜伟  阅读(107)  评论(0)    收藏  举报