Mysql选择并比较行值
我在生成表达式时遇到了麻烦,因为我不知道如何生成正确的查询命令 以下是我想做的:Mysql选择并比较行值,mysql,sql,Mysql,Sql,我在生成表达式时遇到了麻烦,因为我不知道如何生成正确的查询命令 以下是我想做的: Member Table member_id ----- member_name ----- late 1 ----- John ----- 0 2 ----- Doe ----- 4 3 ----- Dennis ----- 6 Type Table type_id ----- type_name -----
Member Table
member_id ----- member_name ----- late
1 ----- John ----- 0
2 ----- Doe ----- 4
3 ----- Dennis ----- 6
Type Table
type_id ----- type_name ----- ctr
1 ----- Good ----- 1
2 ----- Bad ----- 3
3 ----- Very Bad ----- 5
我想根据他们迟到的次数给他们打分,
如果其延迟值等于或小于1,则视为良好
如果他们的迟到次数等于或超过3次,将被视为不良
如果他们的迟到次数等于或超过4次,他们将被视为非常糟糕
我如何进行查询,以得到如下结果:
John ----- Good
Doe ----- Bad
Dennis ----- Very Bad
我不确定我是否正确理解您,但:
SELECT m.member_name, t.type_name
FROM members m JOIN types t ON m.late = t.type_id
您可以尝试类似的方法(您必须修改您的类型表,添加CTR_开始和CTR_结束):
late
列是否与type\u id
列相关?你的问题需要更详细的解释为什么期望的结果是这样的?Dennis late=3。为什么是“坏”?对于其他人来说,这似乎是一个简单的联接。很抱歉,我不知道如何建立正确的表关系。但根据我制作的桌子,它不是。很抱歉,请您解释一下如何为这个案例设计合适的桌子。非常感谢,这就是我想要做的。我没有在type_表中定义最小值和最大值。
CREATE TABLE MEMBER_TABLE (MEMBER_ID INT, MEMBER_NAME VARCHAR(20), LATE INT)
INSERT INTO MEMBER_TABLE VALUES (1,'John', 0);
INSERT INTO MEMBER_TABLE VALUES (2,'Doe', 4);
INSERT INTO MEMBER_TABLE VALUES (3,'Dennis', 6);
CREATE TABLE TYPE_TABLE (TYPE_ID INT, TYPE_NAME VARCHAR(20), CTR_START INT, CTR_END INT)
INSERT INTO TYPE_TABLE VALUES (1,'Good', 0,2);
INSERT INTO TYPE_TABLE VALUES (2,'Bad', 3,4);
INSERT INTO TYPE_TABLE VALUES (3,'Very Bad', 5,999);
SELECT A.MEMBER_NAME, B.TYPE_NAME
FROM MEMBER_TABLE A
LEFT JOIN TYPE_TABLE B ON A.late>= B.CTR_START AND A.LATE<=B.CTR_END;
MEMBER_NAME TYPE_NAME
John Good
Doe Bad
Dennis Very Bad