sql語句單行子查詢返回多個行的問題

時間 2021-10-14 22:23:54

1樓:唐城冬

很明顯啊,說明你的sno不是主鍵,資料不是唯一的如果是sql server這樣寫

select (select top 1 grade from sc where sc.sno=t.sno) as 資料庫 from sc t;

oracle這樣寫

select (select grade from sc where sc.sno=t.sno and rownum=1) as 資料庫 from sc t;

2樓:匿名使用者

首先看你的資料,就一張表,不知道你為什麼要自己跟自己關聯進行查詢,明明可以一次查出來,非得多關聯一次。

select grade from sc where cno='c001'

這樣就搞定了。

然後說說返回多行的問題,因為第二次執行的時候,沒有限制cno等於c001,導致把所有cno的列多查出來了,所以返回多行,而第一次執行,至返回一條cno為c001的資料。

給你個建議,估計你是把專案中的一段**貼上出來了,原來的**中,可能有其他關聯條件或者邏輯演算法,導致你非得sc表和sc表進行了一次關聯,儘量不要用這種關聯,如果資料量很大,這樣兩個大表關聯查詢,會很慢,效能肯定低。

3樓:騎著飛機找媳婦

看資料,那可不就返回多行了

sql語句查詢,sql語句查詢

表要告訴我們呀,不要還要我們設計資料庫吧? 給表啊 我想查查這個玩玩 1.select from student 2.select id,name,age from student 我有例題你要嗎 靠 這麼多東西幫你寫不曉得要死多少腦細胞 分還是少了點 這點分。sql語句查詢不等於怎麼查不出來? 大...

sql查詢語句 多重查詢,SQL查詢語句,怎樣查詢重複資料

select count num,systemfrom site visitmessagewhere visit time 2009 07 17 03 20 22 and visit time 2009 07 27 03 20 22 order by num desc select system,c...

更新SQL語句中,子查詢返回多行值無法執行。如何解決

把子查詢前面的 換成 in 試試?update study set received code taiycg1 where received code in select study.received code from study,series where study.studyinstanceu...