Mysqlsql——And【sql语句之为何用and一个字段两个值得不到表中的数据】

一、【一个表的一个字段的多个条件用and连接】

用and是查不到值的,

and是多个条件同时成立,

也就是and+‘’=‘’是为了应付一个字段等于一个值的情况。

SELECT Course.* FROM Course WHERE Course.CID = '01' AND Course.CID='02';

二【相同两个表的两个相同字段的查询用and连接】

SELECT a.* ,b.* FROM Course a,Course b WHERE a.CID = '01' AND b.CID='02';

第一步:笛卡尔积

第二步:加两个相同表的相同字段

也就是说笛卡尔积会把表中的数据都相乘,然后根据条件筛选,而我们需要不同的条件又需要and连接的时候,就可以把我们多余的条件看成独立的表,我们想要哪个表的数据就添加上那个表并且添加条件。

例子,我们想要查询出课程一比课程二成绩多的学生信息和成绩

-- 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数
SELECT a.* , b.score 课程01的分数,c.score 课程02的分数 FROM Student a , SC b , SC c
WHERE a.SID = b.SID AND a.SID = c.SID AND b.CID = '01' AND c.CID = '02' AND b.score > c.score

分析:

我们需要的是学生信息,和01课程的成绩和02课程的成绩,而成绩表只有一张表,成绩表的01课程成绩要大于02课程成绩,这就需要两张成绩表才可以。一张表在我现在所学的知识是行不通的,我们要做的是查出01课程成绩和02课程成绩,02课程成绩要比01课程成绩多的数据。

原文地址:https://www.cnblogs.com/wy20110919/p/8067125.html