sql連接查詢
A. sql連接查詢方式有哪些
左連接
右連接
內連接
外連接
B. SQL資料庫連接查詢
不管是1還是2都是同一個欄位cityName
你要是這樣只能用下面的方法了
a,b是上面的表
select
t1.busnum,case
when
t1.begincityid=1
then
'長春'
ELSE
'廣州'end
as
begincityid,
case
when
t1.endCityId=1
then
'長春'
ELSE
'廣州'end
as
endCityId,t1.startTime
from
a
t1,
b
t2
where
t1.begincityid=t2.cityid
C. sql 全連接查詢
在兩表連接是不能用groub
by的。(內連接查詢)
select
學號,姓名,選修課課程from
學生信息表
inner
join
課程表
on
學生信息表.選修課課程
=
課程表.選修課課程;
D. SQL左連接查詢
select * from a left join b on a.id=b.id left join c on a.id=c.id where c.id=XX;
E. sql語句連接查詢
select 發言記錄 from table_name where 用戶名='XXX' order by 發言記錄
--------------------------------------------------------------------
select a.username,a.email,a.phone from information a,msg b where a.username=b.sender and a.username='XXX' order by b.id
-----------------------補充----------------
輸出不了是因為你少寫條件了
a.username=b.sender 這個你沒寫,所以結果當然輸出不了
F. SQL怎麼將查詢結果連接到一起
(1)聯立選欄位
selecta.id,a.namename_2014,a.age.b.namename_2013from
(selectid,name,agefromawheretime=2014)a,
(selectid,namefromawheretime=2013)bwherea.id=b.id
(2)利用casewhen和groupby,這個需要測試(原因是我忘了直接寫group行不行,還是要再套一層)
selectid,max((casewhentime=2014thennameend))name_2014,max((casewhentime=2014thenageend))age,max((casewhentime=2013thennameend))name_2013fromtablegroupbyid
(3)欄位子查詢,也需要測試,好像有時候會爆寫錯誤
selectid,name,age,(selectnamefromtablewheretime=2013andtable.id=a.id)name_2013fromtableawherea.time=2014
G. SQL 怎樣連接兩個查詢結果
只算平均分嗎?不考慮是否大於80吧。
select Student.*,t1.CNum,t1.Grade,(select Avg(Grade)
from SC t2
where t2.SNum=t1.SNum and Avg(Grade)>=80) as 平均分
from Student,SC t1
where
t1.SNum=Student.SNum
你說的是平均分不大於80的學生就不列出來嗎?
還是平均分低於80的學生就不顯示平均分了?
我估計你說的是前者
select Student.*,t1.CNum,t1.Grade,(select Avg(Grade)
from SC t2
where t2.SNum=t1.SNum group by t2.SNum having Avg(Grade)>=80) as 平均分
from Student,SC t1
where
t1.SNum=Student.SNum
這個顯示的是所有學生的所有成績,如果平均分大於80,就顯示平均分,小於就不顯示平均分。
如果你只要平均分大於80的學生的信息的話:
select Student.*,t1.CNum,t1.Grade,(select Avg(Grade)
from SC t2
where t2.SNum=t1.SNum) as 平均分
from Student,SC t1
where t1.SNum=Student.SNum
and (select Avg(Grade) from SC t2
where t2.SNum=t1.SNum
and group by t2.SNum)>=80
不知道你是否會要大於80分的學習的姓名啊,就是不要每科的分數,只要姓名。
H. SQL常用的幾種連接查詢
一、內連接(Inner Join)
select*fromainnerjoinbona.name=b.name;
此語句的結果為同時匹配表a和表b的記錄集。即內連接取的是兩個表的交集。
二、全外連接(full outer join)
select*fromafullouterjoinbona.name=b.name;
此語句的結果為表a與表b的並集,即任意一個表的內容都將被查詢出來,如果另一個表無對應的項,則顯示為null
select*fromafullouterjoinbona.name=b.namewherea.nameisnullorb.nameisnull;
此語句的結果為表a與表b的並集除去兩表的交集。即除去了兩表都有的部分,剩餘的是兩表各自不同的部分
三、左外連接(left outer join)
select*fromaleftouterjoinbona.name=b.name;
此語句的結果為表a的所有項加表b與a相匹配的項,b中沒有與a匹配的項時顯示為null
select*fromaleftouterjoinbona.name=b.namewhereb.nameisnull;
此語句的結果為表a的所有項除去兩表的交集
四、右外連接(right outer join)
select*fromarightouterjoinbona.name=b.name;
此語句的結果為表a與表b匹配的項加表b的所有項,a中沒有與b匹配的項時顯示為null
select*fromarightouterjoinbona.name=b.namewherea.nameisnull;
此語句的結果為表b的所有除去兩表的交集