一、【一个表的一个字段的多个条件用and连接】
用and是查不到值的,
and是多个条件同时成立,
也就是and+‘’=‘’是为了应付一个字段等于一个值的情况。
SELECT Course.* FROM Course WHERE Course.CID = '' AND Course.CID='';
二【相同两个表的两个相同字段的查询用and连接】
SELECT a.* ,b.* FROM Course a,Course b WHERE a.CID = '' AND b.CID='';
第一步:笛卡尔积
第二步:加两个相同表的相同字段
也就是说笛卡尔积会把表中的数据都相乘,然后根据条件筛选,而我们需要不同的条件又需要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 = '' AND c.CID = '' AND b.score > c.score
分析:
我们需要的是学生信息,和01课程的成绩和02课程的成绩,而成绩表只有一张表,成绩表的01课程成绩要大于02课程成绩,这就需要两张成绩表才可以。一张表在我现在所学的知识是行不通的,我们要做的是查出01课程成绩和02课程成绩,02课程成绩要比01课程成绩多的数据。