oracle sql問題,有兩張表A,B多對多,B有一屬性

時間 2021-09-07 11:19:19

1樓:匿名使用者

沒太聽明白呀,是不是這樣

select sum(case when b.name in ('a_1','a_2') then 1 else 0) as a,

sum(case when b.name in ('b_1','b_2') then 1 else 0) as b,

sum(case when b.name in ('c_1','c_2') then 1 else 0) as c

from a,b where a.關聯欄位=b.關聯欄位

2樓:射手幽靈伊

先建立一個欄位,把 a_1,a_2更新為一個值,把b_1,b_2更新為一個值,

然後使用這個欄位做分組,就可以了吧。

如果是a_1,a_2,b_1,b_2這樣的,也可以 select left(name,2) 作為一個虛擬欄位,然後用這個虛擬欄位作分組。

3樓:匿名使用者

select

substr(name, 1, instr (name, '_') -1 ),

sum () / count() ...... 相關函式from

b join a on ( 關聯條件 )group by

substr(name, 1, instr (name, '_') -1 )

在oracle資料庫中如何把兩張表關聯起來,多對一或者一對一一對多。請寫明語句 謝謝!!!

4樓:

有兩種辦抄法:

第一種方法是通過襲外來鍵:

假設有兩張表,

a表(aid,aname) b(bid,bname)表 ,要想把這兩者關聯起來的話。可以通過外來鍵來關聯,在b表或者a表中新增一個外來鍵。這裡就以b表把b(bid,aid(外來鍵),bname),這樣通過外來鍵兩張表就可以聯絡起來了,例如我們在查詢的時候通過aid就可以關聯查詢兩張表的資料了。

第二種方法就是增加一張表:

還是拿a表(aid,aname) b(bid,bname)表來舉例把,

我們可以增加個c表來聯絡ab表之間的關係

c表中只要放ab表的主鍵就行了

c(aid,bid),這樣我們就可以通過c表來關聯ab表了。呵呵

5樓:匿名使用者

必須要有關聯欄位,如t1表的id欄位與t2表的id欄位為關聯欄位則:

select * from t1,t2 where t1.id=t2.id

只要各張表有關聯欄位,寫法直接在上面的基礎上累加!

6樓:匿名使用者

你的a,b,c是你所指的三個別名吧?是因為你把子查詢作為i表,而其中的a 把語句貼下,我幫你看下。

SQL兩張表合併 兩張表的列都相同

四舍 入 1 第一種,用一張臨時表,把所有資料都放在一張表裡insert into qunlist select from qunlist89,90,91,92 再在qunlist中查詢 2 第二種,用 union all方式查詢select from qunlist89union all sele...

SQL兩張表合併,任意兩張表,無關聯,只要求合併即可,謝謝

在t表中插入t1表在查詢分析器上寫個簡單的sql語句大概這樣 insert into t values select from t1 把t1表中的逐條資訊插入到表t中,用 create table c as select from a union all select from b 但是這個應該是沒...

關於linq查詢兩張表,返回合併後的兩張表語句咋寫

來,試試下面 列名稱不固定,通用方法 using system using system.collections.generic using system.data using system.linq using system.text namespace test dt1.rows.add new...