mysql三表連線查詢以及百分數排序

key_1997發表於2018-07-15

表結構:
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;

這裡寫圖片描述

②建立產品表並插入值

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

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

這裡寫圖片描述

③建立評價表並插入值

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;

這裡寫圖片描述

建立完三個基本的表之後,我覺得就該三表連線查詢了,
首先使用者表和產品表,使用者與產品是多對多的關係,一種產品可以提供給多個使用者使用,一個使用者也可以使用多個產品;
而評價表的欄位有使用者id,產品id,以及使用者評分,所以我覺得在這裡評價表應該是主表,使用者表和產品表都是從表;


相關文章