Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql选择并比较行值_Mysql_Sql - Fatal编程技术网

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