多對多關係的中間表,如果跟另外兩張表關聯

時間 2021-10-14 22:24:14

1樓:匿名使用者

不明白樓主的意思。

我舉個例子。

一個老師表, 一個學生表, 一個上課的多對多關係的中間表這個 多對多關係的中間表 包含2個欄位, 一個老師id, 一個學生id.

現在還要跟另外兩張表關聯?

難道一個是 教室表, 一個是時間表?

最後這個 多對多關係的中間表 包含4個欄位一個時間,一個老師id, 一個學生id,一個教室id ?

難道是這個意思?

2樓:

在中間表中,再建立2個欄位,分別用於記錄另外兩張表的主鍵欄位。這樣,此中間表就可以利用這兩個欄位與另外的兩張表關聯。不知描述是否準確。供參考

3樓:陳學陽

select * from user where uid in (select uid from uger_groups)

如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!

vaela

4樓:匿名使用者

問題字都打錯了,驢脣不對馬嘴

5樓:噼裡啪啦

樓主可能想問的是

學生與課程 多對多 產生中間表

然後一個學生有多個成績 (月考 期中 期末考試)。

中間表對成績表 一對多

如何根據多對多的關係設計資料表之間的關係? 10

6樓:du瓶邪

舉例如下:

create table dept (

code int not null,

dep_code int null,

name char(50) not null,

constraint pk_dept primary key (code))go

alter table dept

add constraint fk_dept_relations_dept foreign key (dep_code)

references dept (code)go

7樓:極品老土豆

students專門儲存學生資訊

course 專門儲存課程資訊

enrollment 以學生編號,和課程號為主鍵,儲存成績,時間,等資訊

sql多對多關係的兩表如何聯合查詢出所有的結果?

8樓:城春許木深

1、語句如下:

select project.*, [contract].* from project

left join contract_project on project.projectid = contract_project.projectid

left join [contract] on contract_project.contractid = [contract].contractid

注:contract在sql server中是關鍵字,因此使用了中括號。

2、使用left join

left join是以左表為準的。換句話說,左表(project)的記錄將會全部表示出來,而右表(contract_project)只會顯示符合搜尋條件的記錄

(例子中為: project.projectid = contract_project.

projectid)。對於contract表來說,contract_project表是它的左表。

此例以兩個left join 將三個表按條件聯接在一起。

擴充套件資料

連線通常可以在select語句的from子句或where子句中建立,其語法格式為:

select colunm_name1,colunm_name2

from table_name1

left join table_name2

on table_name1.colunmname=table_name2.colunmname

其中join_table指出參與連線操作的表名,連線可以對同一個表操作,也可以對多表操作,對同一個表操作的連線稱為自連線, join_type 為連線型別,可以是left join 或者right join 或者inner join 。

on (join_condition)用來指連線條件,它由被連線表中的列和比較運算子、邏輯運算子等構成。

9樓:匿名使用者

通過contract_project做中間表就行:

select *

from contract_project aleft join project b on a.projectid = b.projectid

left join contract c on a.contractid = c.contractid

前提是contract_project要大而全,包含所有的pid和cid,不然不行

10樓:匿名使用者

看的頭暈啊,呵呵,難的想

多對多關聯式資料庫必須有三張表嗎?? 5

11樓:蝸牛

不是的。比如學生表和選課表 就是多對多的關係 一個學生可以選3門課,一門課程可以被多個學生選。但是 只要在學生表裡有選課欄位就可以了 或者在選課表裡有 選擇它的學生欄位就可以了

12樓:du瓶邪

在關聯式資料庫中,除了一對一,一對多外,還有一個多對多關係.

前兩個關係都只需要內兩個表本容身就能表達清楚他們之間的關係,而多對多關係則需要第三張中間表來表達清楚兩張表之間的關係.

在一般情況下是由三個欄位組成:

1、中間表本身的自增主鍵,

2、兩張表各自的主鍵。

這時候命名就成為了一個問題,而採用雙下劃線就能解決這個問題。

Access兩個表一對多關係如何實現查詢

小開文件鋪 select name,學科,學科成績 from 學生表,成績表where 學生表.name 成績表.name 學生表.name 和 成績表.name 做成一對多的關係,使用上述查詢就可以了。此外,不建議用name作聯絡欄位,最好用一個id欄位,因為name可能會重複。有問題可以找我 t...

表之間的「一對多」的關係是指,資料庫表與表之間多對多關係怎麼處理?

一對多關係為關聯式資料庫中兩個表之間的一種關係,該關係中第一個表中的單個行可以與第二個表中的一個或多個行相關,但第二個表中的一個行只可以與第一個表中的一個行相關。一對多關係,一般為一個表的主鍵對應另一個表的非主鍵,主鍵的值是不能重複的,而非主鍵值是可以重複的,一個主鍵值對應另一個表的非主鍵的值,那麼...

sql中一對多關係的查詢結果的多行轉換成一行多列

1 建立測試表,create table test fee userid number,feeid number,fee number 2 插入測試資料 insert into test fee values 1,1001,80 insert into test fee values 1,1002,...