mysql三表连接查询以及百分数排序

表结构:
User(UID,Uname,Uage,Usex)用户表

Product(PID,Pname)产品表

UscSCore(UID,PID,UseSCore)评价表(评价满分100,60分为及格)

请按产品评价及格率的百分数从高到低排序;

首先分析一下题目以及涉及的问题

  • mysql三表连接查询
  • 控制usescore的分数,100为满分
  • 及格率=及格产品数/产品总数
  • mysql百分数表示
  • 降序排列

接下来我们来建表:

①创建用户表并插入值

CREATE TABLE User(
UID INT UNSIGNED KEY AUTO_INCREMENT,
Uname VARCHAR(20),
Uage INT,
Usex ENUM('男','女','保密')
);


INSERT User (UID,Uname,Uage,Usex) value(1,'aaa',12,'男'),(2,'bbb',13,'女'),(3,'ccc',12,'男'),(4,'ddd',12,'女');
SELECT * FROM User;

mysql三表连接查询以及百分数排序_第1张图片

②创建产品表并插入值

CREATE TABLE Product(
PID INT UNSIGNED KEY AUTO_INCREMENT,
Pname VARCHAR(20)
);

INSERT Product (PID,Pname) value(1,'A'),(2,'B');
SELECT * FROM Product;

mysql三表连接查询以及百分数排序_第2张图片

③创建评价表并插入值

CREATE TABLE UseSC(
UID INT UNSIGNED KEY AUTO_INCREMENT,
PID INT UNSIGNED ,
UseSCore INT   -- 评价满分为100,60分为及格;
)AUTO_INCREMENT=1;

INSERT UseSC (UID,PID,UseSCore) VALUE (1,1,85),(2,2,80),(3,2,75),(4,1,75);
SELECT * FROM UseSC;

mysql三表连接查询以及百分数排序_第3张图片

创建完三个基本的表之后,我觉得就该三表连接查询了,
首先用户表和产品表,用户与产品是多对多的关系,一种产品可以提供给多个用户使用,一个用户也可以使用多个产品;
而评价表的字段有用户id,产品id,以及用户评分,所以我觉得在这里评价表应该是主表,用户表和产品表都是从表;


你可能感兴趣的:(数据库)