當前位置:首頁 » 編程語言 » 三表聯查sql題集
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

三表聯查sql題集

發布時間: 2022-11-27 16:51:14

『壹』 sql三表關聯查詢

select a.*,c.f from (select * from a inner join b on a.a = b.a) as a inner join c on a.d = c.d

select a.*,c.f from a inner join b on a.a = b.a inner join b.d = b.d

兩個都可以,第一個更容易理解,括弧里的部分是查詢出查詢表A的數據和當表A的a=表B的a的數據,把這個結果集,再inner join c on a.d = c.d

查詢出表B的d=表C的d 所對應的f的值。

(1)三表聯查sql題集擴展閱讀:

三個表左連接的sql語句

select

intro_web_page.id,

web_id,

web_name,

template_id ,

template_name,

template_param,

intro_web_page.sort_order

from intro_web_page left join intro_web on (web_id=intro_web.id)

left join intro_template on (intro_web_page.template_id=intro_template.id)

註:這里主要是看,當兩個表和某一個表都有聯系的時候,左連接left join on要怎麼寫。

更新語句

UPDATE issue INNER JOIN user ON `issue`.insert_uid and `user`.id INNER JOIN

(SELECT issue.id as id,issue.insert_uid as uid,`user`.school_id as school_id,school.area as area1 from issue,user,school

where issue.insert_uid=`user`.id and `user`.school_id=school.id) AS T1

ON issue.insert_uid=T1.uid

SET issue.area=T1.area1

『貳』 SQL 三表聯合查詢,查詢一個表的和

分類表A 題目表B 答題情況表C
select d.did,d.c1,e.c2 from
( SELECT B.DID COUNT(C.RID) AS C1 FROM C
INNER JOIN B ON B.TID = C.TID
GROUP BY B.DID ) d
left join
( SELECT B.DID COUNT(C.RID) AS C2 FROM C
INNER JOIN B ON B.TID = C.TID
WHERE C.Istrue = 1
GROUP BY B.DID) e on e.did = d.did

『叄』 三表聯查的SQL語句

這問題交給我吧,假設學生表叫student,課程表叫class,選課表叫choose
1.三層嵌套的問題
select student.name from student where student.id IN
(select choose.sid from choose where choose.cid NOT IN
(select class.id from class where class.teacher='李明'))
2.一個內連接,一個嵌套
select student.name,avg(choose.score) from
student inner join choose on student.id=choose.sid
where student.id IN
(select choose.sid from choose
where choose.score<'60'
group by choose.sid
having count(choose.sid)>=2)
gruop by student.id
3.一個聯合查詢,一個嵌套查詢
select student.name from student
where student.id IN
(select c1.sid from choose c1 where choose.cid='1'
union
select c2.sid from choose c2 where choose.cid='2'
on c1.sid=c2.sid
)
4.好吧,看起來很難,其實就是自連接查詢和行列交換的問題
select student.id,
(case choose.id when '1' then choose.score end) as 1號課成績,
(case choose.id when '2' then choose.score end) as 2號課成績,
from student inner join choose on student.id=choose.sid sc1,
student inner join choose on student.id=choose.sid sc2
where sc1.id='1'
and sc2.id='2'
and sc1.score>sc2.score

5.至於你說的insert報錯的問題,我想可能是因為學生ID和課程ID這兩個外鍵有重復的值,
你可以檢查下,實在不行刪除外鍵,插入數據,在這里外鍵對你最後要的結果影響不大。

純手工打造~有幫助記得給分哈

『肆』 哪位大蝦有經典的sql三表聯查的習題呢,我面試需要,急需沖沖電啊,比如 像學生,課程,分數,這種三表之

為管理崗位業務培訓信息,建立3個表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分別代表學號、學員姓名、所屬單位、學員年齡
C (C#,CN ) C#,CN 分別代表課程編號、課程名稱
SC ( S#,C#,G ) S#,C#,G 分別代表學號、所選修的課程編號、學習成績
要求實現如下5個處理:
1. 使用標准SQL嵌套語句查詢選修課程名稱為』稅收基礎』的學員學號和姓名
2. 使用標准SQL嵌套語句查詢選修課程編號為』C2』的學員姓名和所屬單位
3. 使用標准SQL嵌套語句查詢不選修課程編號為』C5』的學員姓名和所屬單位
4. 使用標准SQL嵌套語句查詢選修全部課程的學員姓名和所屬單位
5. 查詢選修了課程的學員人數
6. 查詢選修課程超過5門的學員學號和所屬單位

**************問題描述************:

已知關系模式:
S (SNO,SNAME) 學生關系。SNO 為學號,SNAME 為姓名
C (CNO,CNAME,CTEACHER) 課程關系。CNO 為課程號,CNAME 為課程名,CTEACHER 為任課教師
SC(SNO,CNO,SCGRADE) 選課關系。SCGRADE 為成績

要求實現如下5個處理:
1. 找出沒有選修過「李明」老師講授課程的所有學生姓名
2. 列出有二門以上(含兩門)不及格課程的學生姓名及其平均成績
3. 列出既學過「1」號課程,又學過「2」號課程的所有學生姓名
4. 列出「1」號課成績比「2」號同學該門課成績高的所有學生的學號
5.列出「1」號課成績比「2」號課成績高的所有學生的學號及其「1」號課和「2」號課的成績

『伍』 如何sql三張表關聯查詢

三張表關聯查詢
使用場景:A\B\C 三張表,現在要查詢並展示A表和C表中的某些欄位,但是A、C兩表沒有相同欄位,無法關聯,此時有B表恰好有兩個欄位,一個欄位和A表一個欄位相同,一個欄位和C表一個欄位相同,我們稱B表為「中間表」,因此通過B表把A、C表關聯起來
SELECT A1,A2,C1,C2 --展示A表中的A1\A2欄位和C表中的C1\C2
FROM B --中間表
INNER JOIN A ON A.A1 = B.B1 --A表中的與B表中相同的欄位
INNER JOIN C ON C.C1 = B.B1 --C表中的與B表中相同的欄位
where xxxxx ---條件你自己按照需求來加,沒有條件就不寫where了

『陸』 求三表聯合查詢的SQL查詢語句

1、SQL語句:select u.*,r.*,r.id rid

from user u left join sys_user_role sur on u.id = sur.useridleft join sys_role r on sur.roleid = r.id

圖片:(表名截圖)

  • 算了,建表語句也給你們了,你們自己測試,這樣更詳細,(程序員)多動手,比什麼都好。(這里的 界面 對寫代碼不太友好,我放博客里了,自己復制粘貼測試使用就行)

    sql語句地址:網頁鏈接

    2、SQL語句解釋:

    select a.*,b.*

    from a表 a left join b表 b on a.id = b.aid

    left join c表 c on b.cid = c.id

    注2:此語句適合a表與c表連接,b表是關系表的情況。

『柒』 求三表聯合查詢的SQL查詢語句

第一種方法:select * from student,teacher,project wherestudent.id=teacher.sid andstudent.id=project.sid;

第二種:select * from student inner join teacher onstudent.id=teacher.sid inner join project onstudent.id=project.sid。

『捌』 sqlserver三表聯查sql語句

假設學生表叫student,課程表叫class,選課表叫choose
1.三層嵌套的問題
select student.name from student where student.id IN
(select choose.sid from choose where choose.cid NOT IN
(select class.id from class where class.teacher='李明'))
2.一個內連接,一個嵌套
select student.name,avg(choose.score) from
student inner join choose on student.id=choose.sid
where student.id IN
(select choose.sid from choose
where choose.score<'60'
group by choose.sid
having count(choose.sid)>=2)
gruop by student.id
3.一個聯合查詢,一個嵌套查詢
select student.name from student
where student.id IN
(select c1.sid from choose c1 where choose.cid='1'
union
select c2.sid from choose c2 where choose.cid='2'
on c1.sid=c2.sid
)
4.其實就是自連接查詢和行列交換的問題:
select student.id,
(case choose.id when '1' then choose.score end) as 1號課成績,
(case choose.id when '2' then choose.score end) as 2號課成績,
from student inner join choose on student.id=choose.sid sc1,
student inner join choose on student.id=choose.sid sc2
where sc1.id='1'
and sc2.id='2'
and sc1.score>sc2.score

『玖』 sql筆試題三表聯查求解

select sum (m.order_price) from (select * from sellorders m ,(select * from branch b, storehouse n where b.branch_id = n.branch_id)t where m.store_id = t.store_id and m.delivery_state = 15 and (m.order_price>500) and (date(m.order_time) between '2015-03-01' and '2015-03-31') and b.branch_id = ?)
傳個分公司ID參數就能查到這個公司的了。

『拾』 SQL 三表聯查

當表1 與表2、表3關聯查詢時,查詢表2、表3的條件還需要加嗎?

表2里是存在 表2.hsdwdm = 005001,表2.kjnd != 2018的記錄?表3也是,是否存在 表3.fzdm = 2040201,表3.kjnd != 2018的數據?

我先給你寫個所有條件都加上的吧,不需要的話你從where 子句中去掉

SELECTDISTINCT
a.gsdm,
a.ZTH=gsdm+',001',
a.fzdm4,
c.fzmc,
b.hsdwdm
FROM
ql_pznra
LEFTJOINGL_ZtcsbONa.gsdm=b.hsdwdm
LEFTJOINgl_fzxzlcONa.fzdm4=c.fzdm
WHERE
LEFT(a.kjqj,4)>='2018'
ANDa.kmdmLIKE'6001%'
ANDa.zth='001'
ANDb.kjnd='2018'
ANDb.ztbh='001'
ANDc.kjnd='2018'
ANDc.lbdm='4';