同一张表内查询多个条件查询地疑问?

http://img.mukewang.com/593b718b00014b8e02150265.jpg

我要查询同时c_name中有计算机和英语的stu_id

查询语句是:

SELECT a.stu_id FROM score a,score b WHERE a.stu_id = b.stu_id AND a.c_name = '计算机' AND b.c_name = '英语'

这样是正确地,但不能理解地是为什么要加上a.stu_id = b.stu_id,如果不加上会出现很多重复地记录

再比如这样查询

SELECT a.* FROM score a,score b

会出现a表10倍的重复记录,能解释一下产生这样的原理吗

慕粉4241372
浏览 1342回答 3
3回答

慕的地8582982

PSPFVSKYSTNWGEUFNMGCGYOYYIBPGOXCKLLFFZTCMPDQPYLZBOLVFZZSAEVEYFIVPMVKHFIISCVPPWZUFYBLBLYVPFBYGQZRHKHQZMCWEXOOCSSWSCWTQSOLZSVCVESPTDQKEKANPVTDPTKLIWWRRWQJXKFVIXQIBCANXQMPNOTDKDHVNTWEVLSWYMMIHPWZSLYNVKFURBLLLOYFCMKRPWTBUERSNZQYBTJQKYVCSYYSJWIVJMTTTTWNWTGEUMSPNXNRHBIKWCMKYTCXLPQQPPZOCJGJLLDFVTDIBHLGWISOVVAFCGAKHAXXXIHKRFZQGWGBBBKQUBUNQHNIGDWDDZZYNDKOPLOPKQDQHYBIEQYSTTRODWJXICDRAABHLRRRSUSLMCAABLSCLVBVVKMPMZRYYULLVTJDBBDJGELERFOLVJSPXBRAHYWGHXDDKUBRAYPFOOFDDNVJTRDQNLLWDWZDDRHSPPXBWFTDZDVTJOVEHPJIEQKOYWCPWCFVBVUZYPMTZZFLVMRGANTAZMCHRDABRZVPIKLPMFIICPBGZTJMTZMDGTIVCMMYBUBDRBUUDQWMVSOSHAORHHOFWPEQTJTAUADKZEUXEKYKHGGCXTVGRHDQMSCQNDWBULBHYWKHWWQTQVRBOKPDTVFSCBLSZFOTMSWDPQQRGGJVEYOHCCLHVLTIEBAXKCECCVZJMVJDHDJMNNSRUISIQZPCMMVKORQNCMZKXGMZZCJPTMDWJPJJWMGJMANMGZDKGSTTGQWZQKGFCXBISVHSJQADGVFUOLWZYTAUHLXGDAHANNQOIWGJQQOYBZTDUTZJQUQRKXFVWSFRGZVVRHCCLLCORTHRUELVNUHNZJMCIRYEWLBPHQQDTCDD

qq_Dreamy_旧城_0

因为你这里用到了两张表,甚至你以后还会用到三表或多表连接,如果说你不进行一下条件约束,系统是没有思维的,它会把所有符合的结果都展示出来,从而造成了数据冗余,而这里进行了条件约束后,相当于除了你所想要查询的条件后,在给它加了一层约束,也是为了防止数据冗余,我认为就是这样的

精慕门9254224

这是笛卡尔积自连接
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL