SQL怎樣把表的資料拆分,形成多對多關係例子如下

2021-03-03 23:20:23 字數 3519 閱讀 3732

1樓:匿名使用者

insert into

表3 select 表1.發票名,表1.金額,表2.收款單名 from 表1,表2 where 表1.發票名=表2.發票名

你要生成哪張表,是表3嗎?還是另外一張表

如何把多對多關係的表拆分成兩張一對多的表 資料庫

2樓:匿名使用者

通過sqlserver2000的嚮導來建立多個表的檢視。這樣就是把多表組合成一張表了。 其中一張表做無謂關係圖就行了以偶那個該,你試試!

資料庫表與表之間多對多關係怎麼處理?

3樓:匿名使用者

拆分關係。增加一個表。使之符合正規化。

比如做學

生選課系統。多個學生選多門課。這是多對多關係。

這樣可以寫成三個表。

分別為。學生表(學號,姓名)

課程表(課程號,課程名)

選課表(學號,課程號)

通過選課表,將學生和課程聯絡起來了。

4樓:匿名使用者

把問題具體一些

多對多也可以join 連線

sql資料庫一對多關係如何取出多條資料? 10

5樓:匿名使用者

直接在sql中是沒法這麼個結構出來的,需要配合程式語言實現

1、先查詢出使用者列表,然後迴圈使用者列表,再根據使用者跟作品表的關聯查詢到每個使用者的作品資訊

2、分別查詢出使用者表和作品表中的所有資料,再根據使用者和作品的關聯欄位進行資料的組合

6樓:匿名使用者

select * from

(select

--t.id,

t.bigclass,

t.num,

t.**allclass,

t.[content],

t.isquantization,

--t.deptid,

--t.targetvalue,

--t.minvalue,

--t.strivevalue,

--t.score,

--t.belongtoperiod,

--t.quantizationtype,--t.indicatorsepdept,--t.f_createdate,

--t.[status]

dzir.*

,row=row_number() over(partition by t.id order by dzir.createtime desc)

from

dk_zb_deptindicator as tright join

dk_zb_indicatorreport as dzir on dzir.indicatorsid = t.id) as t where t.row = 1

dk_zb_deptindicator 對應你的 user 表

dk_zb_indicatorreport 對應你的 作品表

7樓:節子不哭

不是很明白你具體需要做什麼,**有一對多的關係,取出什麼樣的資料?

8樓:匿名使用者

select * from user left join works on users.id = works.userid group by users.姓名

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

9樓:城春許木深

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)用來指連線條件,它由被連線表中的列和比較運算子、邏輯運算子等構成。

10樓:匿名使用者

通過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,不然不行

11樓:匿名使用者

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

sql 多對多關係如何建表?

12樓:古舟蓑笠翁

create table 教師

(教師工號 型別 primary key,教師姓名 型別,

教師地址 型別,

教師** 型別)

create table 課程回資訊

(課程編號 型別 primary key,課程名稱 型別,

資訊備註答 型別)

create table 任課

(教師工號 型別 references 教師(教師工號),課程編號 型別 references 課程資訊(課程編號),primary key(教師工號,課程編號))

13樓:myth月神

如果是開發人員,建議就當做普通的表來建,沒必要設定外來鍵。避免刪除,更改操作出錯。

利用**來實現幾張表的關係。

怎樣用sql語句刪除整個表及資料庫

刪除表操作將刪除表的定義 資料以及該表的相應許可權。在刪除表之前,應該首先刪除該表與其他物件之間的依賴關係。要瀏覽現有的依賴關係,請執行sp depends系統儲存過程。語法drop table table name n 刪除資料庫 drop database 資料庫名字 drop database...

SQL查詢 把兩個表的資料統計到表裡。如下圖所需的結果

select ccc.損壞,損壞的金額,b start no2,b end no2 from select aaa.借出 from select b start no,b end no,位置 count 總數量 from select from aa join bb on book no b sta...

從多個表中查詢資料的sql語句,sql一個表中同時查詢兩個count的sql語句

建立一個儲存過程用來讀取 create procedure testpercudureasdeclare col integerdeclare tablename varchar 100 declare sql as varchar 200 begin select top 0 qqnum into...