全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2018
推到 Plurk!
推到 Facebook!

合併資料庫兩個名稱不同的欄位

答題得分者是:P.D.
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-21 11:27:22 IP:60.250.xxx.xxx 訂閱
我有兩個資料表
資料表A
欄位有time, user_name, type三欄

資料表B
欄位有datetime, user_name, optype三欄

而欄位意義
A.time=B.datetime
A.user_name=B.user_name
A.type=B.optype

現在要同時按user_name搜尋兩個表
最後結果將兩個表都顯示在下列三個欄位就好了(type若有重覆的資料則排除)
time,user_name,type

請問要如何下搜尋語法
christie
資深會員


發表:30
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-21 14:07:32 IP:203.73.xxx.xxx 未訂閱
請問資料庫?
===================引 用 17kobe 文 章===================
我有兩個資料表
資料表A
欄位有time, user_name, type三欄

資料表B
欄位有datetime, user_name, optype三欄

而欄位意義
A.time=B.datetime
A.user_name=B.user_name
A.type=B.optype

現在要同時按user_name搜尋兩個表
最後結果將兩個表都顯示在下列三個欄位就好了(type若有重覆的資料則排除)
time,user_name,type

請問要如何下搜尋語法
------
What do we live for if not to make life less difficult for each other?
weston
一般會員


發表:8
回覆:7
積分:3
註冊:2007-02-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-21 17:12:38 IP:211.21.xxx.xxx 訂閱
我有兩個資料表
資料表A
欄位有time, user_name, type三欄

資料表B
欄位有datetime, user_name, optype三欄

而欄位意義
A.time=B.datetime
A.user_name=B.user_name
A.type=B.optype

現在要同時按user_name搜尋兩個表
最後結果將兩個表都顯示在下列三個欄位就好了(type若有重覆的資料則排除)
time,user_name,type

請問要如何下搜尋語法
//=========================
請給給我分數吧!
select * from A,B where (A.time=B.datetime) and (A.user_name=B.user_name) and (A.type=B.optype )
這樣就顯示啦.....


P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-21 18:14:06 IP:61.67.xxx.xxx 未訂閱
你的答案還沒有做到po文者的結果, 因為他還要type不重覆的問題, 原本第一時間我所想回答的也接近這樣, 但看到他的type要求, 還真有點難度, 
select distinct a.time, b.datetime, a.user_name, a.type from table1 a, table2 b where a.username=b.user_name
但這樣並不符合要求, 因為會造成 time, user_name, type 都是唯一的, 不過看來好像也通, 因為本來就是要調出 a.user=b.user的資料
但是還有一個問題, 這點我覺得有語病, 因為他要找出來的資料放到 time, user_name, type 三個欄位, 問題是b 根本沒有time的欄位, 如何把b顯示出來的也放在 time 上呢? 百思不解??????
是否用 union 來解決呢? 可以試試看
===================引 用 weston 文 章===================
我有兩個資料表
資料表A
欄位有time, user_name, type三欄

資料表B
欄位有datetime, user_name, optype三欄

而欄位意義
A.time=B.datetime
A.user_name=B.user_name
A.type=B.optype

現在要同時按user_name搜尋兩個表
最後結果將兩個表都顯示在下列三個欄位就好了(type若有重覆的資料則排除)
time,user_name,type

請問要如何下搜尋語法
//=========================
請給給我分數吧!
select * from A,B where (A.time=B.datetime) and (A.user_name=B.user_name) and (A.type=B.optype )
這樣就顯示啦.....


max5020
資深會員


發表:30
回覆:277
積分:321
註冊:2003-06-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-05-22 11:02:23 IP:59.120.xxx.xxx 訂閱
這個問題, 
我會用一個TClientDataSet,
來合併兩個Query的結果!!
christie
資深會員


發表:30
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-05-22 16:11:36 IP:203.73.xxx.xxx 未訂閱
select distinct type, time from
(
select time, user_name, type from Tab_A
union all
select datetime time, user_name, optype type from Tab_B
)
where user_name='SPONTANEOUS'
------
What do we live for if not to make life less difficult for each other?
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-05-22 17:16:29 IP:122.116.xxx.xxx 未訂閱
union 會排除重覆的

select time, user_name, type from a
union
select datetime, user_name, optype from b

我在 oracle 下曾用過類似的, 現在沒再試, 請自行試一下
謝謝
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
17kobe
初階會員


發表:86
回覆:73
積分:31
註冊:2007-07-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-05-23 21:40:15 IP:124.8.xxx.xxx 訂閱
謝謝各位回答,用 select ... uinon(select ...)就可以了
但要欄位一樣須用as,如 欄位名 as T1,兩邊都同樣用T1名字才行
還有假如一邊沒有此欄位也可以用 null as T1。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-05-26 16:54:56 IP:61.67.xxx.xxx 未訂閱
如已解決, 請儘速結案, 謝謝!
===================引 用 17kobe 文 章===================
謝謝各位回答,用 select ... uinon(select ...)就可以了
但要欄位一樣須用as,如 欄位名 as T1,兩邊都同樣用T1名字才行
還有假如一邊沒有此欄位也可以用 null as T1。
系統時間:2024-05-07 9:27:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!