个人观点以及疑惑
Topic source个人觉得sql里的笛尔卡积更多的是为了让你深入理解连表查询,比如你可以试试 from t as t1 join t as t2 on t1.field < t2.field,更好理解sql的算法
SELECT c.name [cname], COUNT(s.id) [num] , AVG(s.score)
FROM students s, classes c
WHERE s.class_id = c.id
GROUP BY c.name;
朋友你的怎么查询的哦,我用的是这种方式,能不能帮我看看有什么不对的吗?
也可以这样:SELECT c.name 班级, count(*) num FROM students s, classes c WHERE s.class_id = c.id GROUP BY class_id;
- 1
l希冀l
本小节廖老师这种方式的多表查询是个笛卡尔积查询,但真正有意义的多表查询需要将多表的主键外键相关联才行,此处为students的外键class_id和classes表的主键id需要关联相等,即查询时要添加WHERE students.class_id =classes.id。
前一小节一个很好的问题就与多表查询有关
要显示这种格式的怎么实现?
班级 人数 一班 4 二班 3 三班 3
我提供的一种解决方式:
SELECT classes.name,COUNT(classes.name) num FROM students, classes WHERE students.class_id = classes.id GROUP BY classes.name;
提问廖老师:您本小节讲的内容笛卡尔积在怎样的实际开发或场景中会用到呢?