我要查詢同時c_name中有計算機(jī)和英語的stu_id查詢語句是:SELECT?a.stu_id?FROM?score?a,score?b?WHERE?a.stu_id?=?b.stu_id?AND?a.c_name?=?'計算機(jī)'?AND?b.c_name?=?'英語'這樣是正確地,但不能理解地是為什么要加上a.stu_id = b.stu_id,如果不加上會出現(xiàn)很多重復(fù)地記錄再比如這樣查詢SELECT?a.*?FROM?score?a,score?b會出現(xiàn)a表10倍的重復(fù)記錄,能解釋一下產(chǎn)生這樣的原理嗎
3 回答


qq_Dreamy_舊城_0
TA貢獻(xiàn)24條經(jīng)驗 獲得超2個贊
因為你這里用到了兩張表,甚至你以后還會用到三表或多表連接,如果說你不進(jìn)行一下條件約束,系統(tǒng)是沒有思維的,它會把所有符合的結(jié)果都展示出來,從而造成了數(shù)據(jù)冗余,而這里進(jìn)行了條件約束后,相當(dāng)于除了你所想要查詢的條件后,在給它加了一層約束,也是為了防止數(shù)據(jù)冗余,我認(rèn)為就是這樣的
添加回答
舉報
0/150
提交
取消