㈠ 查詢同時只選修了1號和2號課程的學生的學號
目前想到3種方法:
1)select Student.S#,Sname from Student
join SC on Student.S# = SC.S#
where Student.S# in (select Student.S# from Student join SC on Student.S# and SC.S# where C# = 』001#』)
and SC.C# = 』002#』
-- 先篩選出選了課程1的學生學號,再篩選了課程2的學生
2)select SC.S# from SC
where SC.C# in ('001#','002#') group by SC.S# having COUNT(*) = 2;
-- 在成績表中篩選出選修了課程1和課程2的數據,如果同一個學生這兩條記錄加起來是2,就說明他既選修了課程1,也選修了課程2
3)select Student.S#,Sname from Student
join SC on Student.S# = SC.S#
where SC.C# = 『1#』 and exists
(select Student.S#,Sname from Student
join SC on Student.S# = SC.S#
where SC.C# = 『2#』)
㈡ access中的sql如何寫找出一個表中同時選修了課程編號為1和2兩門課的學生的姓名
Select 姓名 from Table where 課程編號=1 and 課程編號=2
㈢ 用SQL查詢同時選修了1號課和2號課的學生學號
工具/材料:以Management Studio為例。
1、首先在桌面上,點擊「Management Studio」圖標。
㈣ 用SQL查詢同時選修了1號課和2號課的學生學號
sno 指的是什麼?cno指什麼? 上面的sql語句是不可能實現同樣的功能的。
sno如果是指學生學號;
cno是指課程號的話。
where cno=』1『 and cno=』2『
是指課程號是1和2 的學生信息。
where sno=』1『 and sno in(select sno
from SC
where sno=』2『)
是指學生學號是1和2 的學生,事實上,作為主鍵的sno沒有可能同時是1和2的。
㈤ 資料庫sql查詢同時選修了選修課1和選修課2的學生學號
select Sno from sc where Cno in('課1','課2') group by Sno having count(*)=2
㈥ 用SQL查詢同時選修了1號課和2號課的學生學號怎麼查
你好像寫錯了吧,,,
我感覺應該是
select Sno
from SC
where Cno='1' and son in (select Sno from SC where Cno='2');
或者
where Cno='1' intersert select Sno from SC where Cno='2');
INTERSECT對兩個查詢做交集。相當於and
㈦ SQL 語句:在sc表中查詢至少選修了兩門課的學生學號的語句
至少選修c1和c2的學生編號:
select sno(學生的學號) from sc(學生選課表) group by sno having count(*)>1
SQL結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統,可以使用相同的結構化查詢語言作為數據輸入與管理的介面。
SQL結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
(7)sql選修1號和2號課程擴展閱讀:
SQL常見語句:
更新:update table1 set field1=value1 where 范圍。
查找:select * from table1 where field1 like 』%value1%』 (所有包含『value1』這個模式的字元串)。
排序:select * from table1 order by field1,field2 [desc]。
求和:select sum(field1) as sumvalue from table1。
平均:select avg(field1) as avgvalue from table1。
最大:select max(field1) as maxvalue from table1。
最小:select min(field1) as minvalue from table1[separator]。
㈧ SQL求選修了1號課或2號課的學生學號和課號及成績用集合查詢的方法
SELECT Sno
FROM SC
WHERE Cno='1'
INTERSECT
SELECT Sno
FROM SC
WHERE Cno='2'
集合運算,列的數目、類型要一致
如果還報錯,那就考慮別的語法吧,not in或者not exists
列值不一樣的記錄,在集合想減時減不掉,所以要把cno和grade列去掉
㈨ SQL查詢沒有同時選修1號課程和2號課程學生的學號
SELECT DISTINCT Sno
FROM SC
WHERE Sno NOT IN
(SELECT Sno
FROM SC
WHERE Cno='1' AND Sno IN
(SELECT Sno
FROM SC
WHERE Cno='5'))
這是一般的變法,還可用集合查詢,關鍵字INTERSECT
SELECT DISTINCT Sno
FROM SC
WHERE Sno NOT IN
(SELECT Sno
FROM SC
WHERE Cno='1'
INTERSECT
SELECT Sno
FROM SC
WHERE Cno='5')
㈩ 用SQL語句列出「1」號課成績比「2」號課成績高的所有學生的學號及其「1」號課和「2」號課的成績。
很簡單,先查詢出1號課成績學生的學號和成績,再查詢出選修2號課成績的學生的學號和成績,將兩條查詢語句作為兩個將要查詢的表,進行查詢,並且用where設置條件,就行了,兩個表連接可能要用到join on這條語句,LZ不懂可以直接網路,這個問題網路上很多的。