1樓:匿名使用者
select aaa.*,bbb.name as bbb_name from table3 ccc
left join table1 aaa on aaa.id=ccc.table1_id
left join table2 bbb on bbb.id=ccc.table2_id
where 1=1
應該根據table3 進行聯合查詢
你上面的是left table1 當然是顯示table1裡的資料了
2樓:匿名使用者
select aaa.*, wmsys.wm_concat (bbb.name) as bbb_name from table1 aaa
left join table3 ccc on aaa.id=ccc.table1_id
left join table2 bbb on ccc.table2_id=bbb.id
where 1=1
group by aaa.id,aaa.name
sql資料庫一對多關係如何取出多條資料? 10
3樓:匿名使用者
直接在sql中是沒法這麼個結構出來的,需要配合程式語言實現
1、先查詢出使用者列表,然後迴圈使用者列表,再根據使用者跟作品表的關聯查詢到每個使用者的作品資訊
2、分別查詢出使用者表和作品表中的所有資料,再根據使用者和作品的關聯欄位進行資料的組合
4樓:匿名使用者
select * from
(select
--t.id,
t.bigclass,
t.num,
t.smallclass,
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 對應你的 作品表
5樓:節子不哭
不是很明白你具體需要做什麼,**有一對多的關係,取出什麼樣的資料?
6樓:匿名使用者
select * from user left join works on users.id = works.userid group by users.姓名
sql的一對多,多對一,一對一,多對多什麼意思?
7樓:思念是一種醉過
1、一對多:比如說一個班級有很多學生,可是這個班級只有一個班主任。在這個班級中隨便找一個人,就會知道他們的班主任是誰;知道了這個班主任就會知道有哪幾個學生。
這裡班主任和學生的關係就是一對多。
2、多對一:比如說一個班級有很多學生,可是這個班級只有一個班主任。在這個班級中隨便找一個人,就會知道他們的班主任是誰;知道了這個班主任就會知道有哪幾個學生。
這裡學生和班主任的關係就是多對一。
3、一對一:比如說一個班級有很多學生,他們分別有不同的學號。一個學生對應一個學號,一個學號對應一個學生;通過學號能找到學生,通過學生也能得到學號,不會重複。
這裡學生和學號的關係就是一對一。
4、多對多:比如說一個班級有很多學生,他們有語文課、數學課、英語課等很多課。一門課有很多人上,一個人上很多門課。這裡學生和課程的關係就是多對多。
1、一對一的使用方法
(1)使用巢狀結果對映來處理重複的聯合結果的子集 。
(2)通過執行另外一個sql對映語句來返回預期的複雜型別。
2、一對多的實現方法
在多的一方的表裡面,新增外來鍵。
3、多對多的實現方法
多對多,必須要通過單獨的一張表來表示。
8樓:匿名使用者
舉個例子:
你有3個表
學生表(學生id 學生姓名)
課程表(課程id 課程名)
成績表 (學生id 課程id 分數)
班級表(班級id 學生id)
這裡的班級表跟學生表就是一對多 一個班級包含了很多學生 反過來就是多對一
這裡的課程表就是多對多 一門課對應多個學生選擇 一個學生也可以有多個課程可以選
至於一對一的話 教授與學生的關係 一般一個教授就對應一個學生
9樓:匿名使用者
一對一:我有一個身份證號 ;
一對多:我有多張銀行卡;
多對多:我是招行、交行、建行的客戶,但是這些銀行使用者均過億。
10樓:匿名使用者
就是在資料庫裡,表與表之間的資料交換與提取,例如有兩表:表一(b中有欄位mc,sl),表二(c中有欄位mc,sl)
在查詢分析器中輸入
select b.mc,a.sl from b.a,c.b where a.mc=b.mc
就能看到表b,c中欄位mc相同的資料資訊了。
sql語句從主表刪除一條資料,並且把先關聯的多個子表資料也刪除
11樓:匿名使用者
如果建立了主外來鍵約束,那麼這個約束是可以關聯刪除的(建立的時候要加一個引數,這是oracle的寫法,如果你不是oracle我不清楚其他資料庫能不能這樣做)。
建立觸發器,這個所有資料庫都可以。你這裡就是after delete觸發,也是刪除語句,這個是可以的。
12樓:m我們的人的人
delete from table where date in('c','e','f')
結構化查詢語言(structured query language)簡稱sql,結構化查詢語言是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統;
用外來鍵關聯刪除,把b表的uid設成外來鍵關聯a表的id,並關聯刪除操作。
用儲存過程,用事務來處理實現。
建立資料庫:create database database-name刪除資料庫
drop database dbname
建立新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
刪除新表:drop table tabname
增加一個列:alter table tabname add column col type
新增主鍵:alter table tabname add primary key(col)
刪除主鍵:alter table tabname drop primary key(col)
建立索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
建立檢視:create view viewname as select statement
刪除檢視:drop view viewname
13樓:你猜我猜哇擦猜
建議你寫個儲存過程,我寫的一個,讓你參考一下!cardno是自定義的資料型別!用觸發器容易出錯
create procedure delfixuser@cardno cardno
asdeclare @carno carnoselect @carno=車輛號碼 from fixcardindextable
where 卡號=@cardno
delete from allcardindextablewhere 卡號=@cardno
delete from fixcardindextablewhere 卡號=@cardno
delete from fixcardenddatetablewhere 卡號=@cardno
delete from cardpasswordtablewhere 卡號=@cardno
delete from usercarinfotablewhere 車輛牌號=@carno
說明:刪除一個固定使用者記錄,同時從allcardindextable、fixcardindextable、fixcardenddatetable、cardpasswordtable和usercarinfotable表中刪除相應的記錄。
資料庫中一對一一對多多對多關係是什麼意思
舉個例子 你有3個表 學生表 學生id 學生姓名 課程表 課程id 課程名 成績表 學生id 課程id 分數 班級表 班級id 學生id sql的一對多,多對一,一對一,多對多什麼意思?1 一對多 比如說一個班級有很多學生,可是這個班級只有一個班主任。在這個班級中隨便找一個人,就會知道他們的班主任是...
資料庫中兩表為一對多關係要刪除主鍵表中的資訊怎麼刪除
1對多來看的話,看成樹狀結構。真要刪除的話,從下往上刪除。刪除到最上面為止。整個刪除過程作為一個事物來寫。先刪外來鍵所關聯的那個表中的資料,再刪主表的資料 先刪除外來鍵表,再刪除主鍵表。資料庫表的多對多關係 怎麼消除?糾正一抄下,多對多本身就是一種資料庫類 bai型,談不du上消除的。如 一個老師可...
資料庫如何建一對一表,資料庫如何建立表間一對多關係
一對一有時候需要建表,因為 繼承 多型 的原因。比如 使用者表 和 vip使用者表 的關係。或者 普通使用者 和 企業使用者 的關係 正常情況下是需要一個是否vip標記位就可以了。但是當下面情況發生的時候,需要建單獨的表 1,當vip的屬性欄位比普通使用者多很多,並且衍生的邏輯關係比普通使用者複雜很...