當前位置:首頁 » 數據倉庫 » 資料庫多張表查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫多張表查詢

發布時間: 2022-09-20 19:59:43

① 如何同時查詢兩個資料庫

封裝2個方法連接2個資料庫
把第一個資料庫查詢出的CITY名字
放到第2個方法里進行查詢第一個資料庫的ID就可以了

② 關於資料庫多表查詢

select * from (select a.user as user,a.pwd as pwd from a join b on a.id=b.id) where user="admin"
或者
select * from (select * from A join B on A.id=B.id) where user="admin"

sql server資料庫里查詢時新建查詢怎麼進行多表查詢

首先要檢查你的表與表之間是不是有約束(主外鍵約束),如果存在,才可以像 上面這位朋友的方式進行連接,一般連接有左連接、右連接、內連接,下面給你舉例:

----做笛卡爾積
select s.id,s.name,sc.id,sc.sname,sc.score from infom s ,score sc

------內連接 寫法一
select s.id,s.name,sc.id,sc.sname,sc.score
from infom s ,score sc inner join score sc
on s.id= sc.id ------內連接的條件
------on s.id <>sc.id --------是全集 - 交集
------where sc.score>80

------內連接 方法二
select s.id,s.name,sc.id,sc.sname,sc.score
from infom s ,score sc
where s.id= sc.id

------

-------------------------------------------------------外連接 左連接
--------------左表數據完全顯示,右表中相同的數據顯示,不同數據null
select Student.name,score.score
from Student left join score -----------------先寫的為左表
on Student.id=score .id -----------------連接條件

-------------------------------------------------------外連接 右連接
--------------右表數據完全顯示,左表中相同的數據顯示,不同數據顯示null
select Student.name,score.score
from Student right join score
on Student.id=score .id

-------------------------------------------------------全連接 full join
-------------------------------------------------------左、右表的數據完全顯示,相同的數據顯示一次
select Student.name,score.score
from Student full join score
on Student.id=score .id

-------------------------------------------------------交叉聯接
------------------------------------------交叉聯接得到的是兩表聯接所有的數據組合
------------------------------------------(A表的數據記錄* B 表的數據記錄)
-------------------------------------------方式一
select Student.*,score.* from Student,score
-------------------------------------------方式二
select score .*,Student.* from Student
cross join score

-----------------------------------------------------多表聯接
--------------------------------------要求查出張三 C#的考試成績,涉及student,score,subject三個表
---------方式一:
select student.name,subject.sname ,score .score
from Student
inner join score
on student.id= score.id
inner join subject
on score.id=subject.id
where Student.name='張三' and subject.sname='C#'

---------方式二:等值聯接
select student.name,subject.sname ,score .score
from Student,score ,subject
where StudentDB.id=score.id and score .id=subject.id
and Student.name='張三' and subject.sname='C#'

④ mysql資料庫,多個表的查詢操作

要點:left
join,right
join,inner
join
首先有如下兩個表:
student:
id(int)
name(nvarchar)
1
a
2
b
3
c
4
d
5
e
6
f
quiz:
id(int)
score(int)
1
60
2
70
4
80
6
90
8
100
9
30
內連接:(inner
join)包括連接表的匹配行
select
student.name,quiz.score
from
quiz
inner
join
student
on
student.id=quiz.id
name
score
a
60
b
70
d
80
f
90
左連接:(left
join)包括連接表匹配行以及左連接表的所有行
select
student.name,quiz.score
from
student
left
join
quiz
on
student.id=quiz.id
name
score
a
60
b
70
c
null
d
80
e
null
f
90
右連接:(right
join)結果包括連接表的匹配行以及右連接表的所有行
select
student.name,quiz.score
from
student
right
join
quiz
on
student.id=quiz.id
name
score
a
60
b
70
d
80
f
90
null
100
null
30
當然,也可以看出左連接也可以寫成右連接的形式:
select
student.name,quiz.score
from
student
right
join
quiz
on
student.id=quiz.id等價於
select
student.name,quiz.score
from
quiz
left
join
student
on
student.id=quiz.id

⑤ SQL資料庫的表。怎麼同時連接3個表查詢。

可以參考下面的方法:

1、select * from 表1,表2,表3 where 表1.欄位=表2.欄位 and 表1.欄位=表3.欄位

2、select * from 表1 join 表2 on 表1.欄位=表2.欄位 and join 表3 on 表1.欄位=表3.欄位

如果沒有AND,前面就需要加括弧了。

(5)資料庫多張表查詢擴展閱讀:

參考語句

創建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根據已有的表創建新表:

1、create table tab_new like tab_old (使用舊表創建新表)

2、create table tab_new as select col1,col2… from tab_old definition only

刪除新表

drop table tabname

⑥ 資料庫多表查詢怎麼查

SELECT * FROM 表A a LEFT JOIN 表b b ON a.欄位 = b.欄位
其中a、b是表的別名,select後面的*號也可以換成你要查詢的某個欄位,left左關聯會顯示出a表所有的欄位,如果是inner join就只會顯示兩表共有的欄位

⑦ sql資料庫 多表查詢

可以有兩種處理方法,
1、兩表先合並,後求和
select 日期,sum( 數值) as 數值 from
( select 日期, 金額 as 數值 from A表
union all
select 日期,數量 as 數值 from B表 )
group by 日期
2、先求和後合並,再求和
select 日期,sum( 數值) as 數值 from
( select 日期, sum(金額) as 數值 from A表 group by 日期
union all
select 日期,sum(數量) as 數值 from B表 group by 日期 )
group by 日期

對於「如果要實現總和的相乘、相除,或者相減得話,應該怎麼寫呢?」,你得提出明確需求,那後才能設計。

如果 是相乘、相除,或者相減,得有條件,還像上面,用日期關聯,A表 - B表,

A表求和:select 日期,sum(金額) as 數值 from A表 group by 日期
B表求和:select 日期,sum(數量) as 數值 from B表 group by 日期

在執行 A表 - B表 時,由於用日期關聯,則某一日期對應的記錄可能會產生三種情況: A表B表都有;A表有B表無;A表無B表有。

1、需要先找出所有日期,

select 日期 from A表
union
select 日期 from B表

2、對於A表中所有數據以上表中日期為依據構造所有相關日期數據,如果有日期數據,則為原數據,否則為0。

select a.日期 as 日期,
case when b.數值 is NULL then b.數值 else 0 end as 數值
from
( select 日期 from A表
union
select 日期 from B表 ) a
left join
( select 日期,sum(金額) as 數值 from A表 group by 日期 ) b
on a.日期 = b.日期

3、同樣對於B表也如此。

4、2表相減即得。

select a3.日期 as 日期, a3.數值 - b3.數值 as 數值
from
(
select a1.日期 as 日期,
case when b1.數值 is NULL then b1.數值 else 0 end as 數值
from
( select 日期 from A表
union
select 日期 from B表 ) a1
left join
( select 日期,sum(金額) as 數值 from A表 group by 日期 ) b1
on a1.日期 = b1.日期
) a3 ,
(
select a2.日期 as 日期,
case when b2.數值 is NULL then b2.數值 else 0 end as 數值
from
( select 日期 from A表
union
select 日期 from B表 ) a2
left join
( select 日期,sum(金額) as 數值 from B表 group by 日期 ) b2
on a2.日期 = b2.日期
) b3

where a3.日期 = b3.日期

當然,以上只是一種方法,還有其他方法也可以實現,盡供參考。

⑧ sql資料庫多表查詢

1.

select
st.StudentNumber,
st.Name,
count(*)
from
studentst,
sbooksk
where
st.StudentNumber=sk.StudentNumber
andto_char(sk.BorrowingTime,'yyyy')='2008'
groupby
st.StudentNumber,
st.Name

2.

select
b.BookNumber,
b.BookName,
st.Name,
sk.BorrowingTime,
sk.ShouldReturnTime
from
studentst,
sbooksk,
bookb
where
st.StudentNumber=sk.StudentNumber
andsk.BookNumber=b.BookNumber
andmonth(sk.BorrowingTime)=month(sysdate)

3.

CreateviewyourViewNameas
select
b.BookNumber,
b.BookName,
st.Name,
sk.BorrowingTime,
sk.ShouldReturnTime
from
studentst,
sbooksk,
bookb
where
st.StudentNumber=sk.StudentNumber
andsk.BookNumber=b.BookNumber
andmonth(sk.BorrowingTime)=month(sysdate)

沒運行過可能有點問題

⑨ ACCESS資料庫中如何實現多表聯合查詢

1、Access 資料庫多表聯合查詢,每次連接之前須將連接符前面的內容放在括弧裡面,示例如:select 表a.欄位1,表b.欄位1,表c.欄位1,表d.欄位1 from ((表a inner join 表b on 表a.欄位=表b.欄位) inner join 表c on 表c.欄位=表a.欄位)inner join 表d on 表a.欄位=表d.欄位
2、如果每個聯合欄位不止一個可將on後面條件加(),如:select 表a.欄位1,表b.欄位1,表c.欄位1,表d.欄位1 from (表a inner join 表b on (表a.欄位1=表b.欄位1 and 表a.欄位2=表b.欄位2)) inner join 表c on 表c.欄位=表a.欄位
3、如果要一次聯合一個表多次,但條件不同,可以每次連接此表時給此表換個別名,用別名操作即可,如:select aa.欄位1,表b.欄位1,表c.欄位1,bb.欄位2 from ((表a as aa inner join 表b on aa.欄位1=表b.欄位) inner join 表c on 表c.欄位=表a.欄位)inner join 表a as bb on 表a.欄位=bb.欄位2.

⑩ ACCESS資料庫多表查詢

可以取別名