討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 軟體開發過程中有哪些資安漏洞?
[ 回上頁 ] [ 討論區發言規則 ]
Dao 的 Inner Join 問題-->捉不到欄位
更改我的閱讀文章字型大小
作者 : (sha)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/11/28 下午 05:15:02
以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!

作者 : (笨毛)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/25 上午 08:32:04
>以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
>我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!



這個問題跟資料庫有關..
你是用什麼類形的資料庫

試著把RS2放在前面吧..
不然.. 就要去看看RIGHT JOIN了..
哦.. 對了.. join 有分不少種... 不是只有inner一種..

嗯... 這個問題.. 跟COM好像沒有什麼關係..^^"
作者 : (sha)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/26 上午 12:00:58
>>以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
>>我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!
>>
>>

>這個問題跟資料庫有關..
>你是用什麼類形的資料庫

>試著把RS2放在前面吧..
>不然.. 就要去看看RIGHT JOIN了..
>哦.. 對了.. join 有分不少種... 不是只有inner一種..

>嗯... 這個問題.. 跟COM好像沒有什麼關係..^^"

有關資料庫是用Access建立的,然後在VC中使用DAO來使用;你建議把RS2放在前面或使用Right Join,好像解決不了問題!我所提的問題雖跟COM無直接關係,但因討論VC的網站且能確實解答問題,實在不多!我初學vc至今也快一年,大部份問題仍找不到答案!我想你們連COM都懂,應該很容易幫忙我這個初學者解決問題吧!在此先謝謝你們了!
作者 : (Martin)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/27 上午 08:02:02
>>>以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
>>>我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!
>>>
>>>
>>
>>這個問題跟資料庫有關..
>>你是用什麼類形的資料庫
>>
>>試著把RS2放在前面吧..
>>不然.. 就要去看看RIGHT JOIN了..
>>哦.. 對了.. join 有分不少種... 不是只有inner一種..
>>
>>嗯... 這個問題.. 跟COM好像沒有什麼關係..^^"

>有關資料庫是用Access建立的,然後在VC中使用DAO來使用;你建議把RS2放在前面或使用Right Join,好像解決不了問題!我所提的問題雖跟COM無直接關係,但因討論VC的網站且能確實解答問題,實在不多!我初學vc至今也快一年,大部份問題仍找不到答案!我想你們連COM都懂,應該很容易幫忙我這個初學者解決問題吧!在此先謝謝你們了!



我想sha 應該是要:
SELECT RS1.*, RS2.A4
FROM RS1 INNER JOIN RS2 ON RS1.A1 = RS2.A1;
對嗎?
不過因 RS1.A1 與 RS2.A1 資料型態一定要相同的!
而網友笨毛說的是另一種情形:
如果"硬"要取出 RS2.A4 而不一定 RS2.A1 與 RS1.A1 有相同資料的話,
用 RIGHT JOIN:
SELECT RS2.*
FROM RS1 RIGHT JOIN RS2 ON RS1.A1 = RS2.A1;


請參考~


Martin



作者 : (笨毛)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/30 上午 09:47:41
>>>>以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
>>>>我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!
>>>>
>>>>
>>>
>>>這個問題跟資料庫有關..
>>>你是用什麼類形的資料庫
>>>
>>>試著把RS2放在前面吧..
>>>不然.. 就要去看看RIGHT JOIN了..
>>>哦.. 對了.. join 有分不少種... 不是只有inner一種..
>>>
>>>嗯... 這個問題.. 跟COM好像沒有什麼關係..^^"
>>
>>有關資料庫是用Access建立的,然後在VC中使用DAO來使用;你建議把RS2放在前面或使用Right Join,好像解決不了問題!我所提的問題雖跟COM無直接關係,但因討論VC的網站且能確實解答問題,實在不多!我初學vc至今也快一年,大部份問題仍找不到答案!我想你們連COM都懂,應該很容易幫忙我這個初學者解決問題吧!在此先謝謝你們了!
>>


>我想sha 應該是要:
>SELECT RS1.*, RS2.A4
>FROM RS1 INNER JOIN RS2 ON RS1.A1 = RS2.A1;
>對嗎?
>不過因 RS1.A1 與 RS2.A1 資料型態一定要相同的!
>而網友笨毛說的是另一種情形:
>如果"硬"要取出 RS2.A4 而不一定 RS2.A1 與 RS1.A1 有相同資料的話,
>用 RIGHT JOIN:
>SELECT RS2.*
>FROM RS1 RIGHT JOIN RS2 ON RS1.A1 = RS2.A1;


>請參考~


>Martin





^^" 抱歉啊.. 之前沒有想清楚就亂寫..
---> Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC
這句命令.. 只有取一個TABLE RS1的資料而以..
要像上面MARTIN 說的.. SELECT 時.. 指定要那個TABLE 的那一個欄位.. 就可以啦...
^^" 真是抱歉的很..
AND Think You, Martin.

作者 : (笨毛)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2000/12/30 上午 09:47:45
>>>>以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
>>>>我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!
>>>>
>>>>
>>>
>>>這個問題跟資料庫有關..
>>>你是用什麼類形的資料庫
>>>
>>>試著把RS2放在前面吧..
>>>不然.. 就要去看看RIGHT JOIN了..
>>>哦.. 對了.. join 有分不少種... 不是只有inner一種..
>>>
>>>嗯... 這個問題.. 跟COM好像沒有什麼關係..^^"
>>
>>有關資料庫是用Access建立的,然後在VC中使用DAO來使用;你建議把RS2放在前面或使用Right Join,好像解決不了問題!我所提的問題雖跟COM無直接關係,但因討論VC的網站且能確實解答問題,實在不多!我初學vc至今也快一年,大部份問題仍找不到答案!我想你們連COM都懂,應該很容易幫忙我這個初學者解決問題吧!在此先謝謝你們了!
>>


>我想sha 應該是要:
>SELECT RS1.*, RS2.A4
>FROM RS1 INNER JOIN RS2 ON RS1.A1 = RS2.A1;
>對嗎?
>不過因 RS1.A1 與 RS2.A1 資料型態一定要相同的!
>而網友笨毛說的是另一種情形:
>如果"硬"要取出 RS2.A4 而不一定 RS2.A1 與 RS1.A1 有相同資料的話,
>用 RIGHT JOIN:
>SELECT RS2.*
>FROM RS1 RIGHT JOIN RS2 ON RS1.A1 = RS2.A1;


>請參考~


>Martin





^^" 抱歉啊.. 之前沒有想清楚就亂寫..
---> Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC
這句命令.. 只有取一個TABLE RS1的資料而以..
要像上面MARTIN 說的.. SELECT 時.. 指定要那個TABLE 的那一個欄位.. 就可以啦...
^^" 真是抱歉的很..
AND Think You, Martin.

作者 : (sha)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2001/1/2 上午 12:17:08
>>>>>以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
>>>>>我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!
>>>>>
>>>>>
>>>>
>>>>這個問題跟資料庫有關..
>>>>你是用什麼類形的資料庫
>>>>
>>>>試著把RS2放在前面吧..
>>>>不然.. 就要去看看RIGHT JOIN了..
>>>>哦.. 對了.. join 有分不少種... 不是只有inner一種..
>>>>
>>>>嗯... 這個問題.. 跟COM好像沒有什麼關係..^^"
>>>
>>>有關資料庫是用Access建立的,然後在VC中使用DAO來使用;你建議把RS2放在前面或使用Right Join,好像解決不了問題!我所提的問題雖跟COM無直接關係,但因討論VC的網站且能確實解答問題,實在不多!我初學vc至今也快一年,大部份問題仍找不到答案!我想你們連COM都懂,應該很容易幫忙我這個初學者解決問題吧!在此先謝謝你們了!
>>>
>>
>>
>>我想sha 應該是要:
>>SELECT RS1.*, RS2.A4
>>FROM RS1 INNER JOIN RS2 ON RS1.A1 = RS2.A1;
>>對嗎?
>>不過因 RS1.A1 與 RS2.A1 資料型態一定要相同的!
>>而網友笨毛說的是另一種情形:
>>如果"硬"要取出 RS2.A4 而不一定 RS2.A1 與 RS1.A1 有相同資料的話,
>>用 RIGHT JOIN:
>>SELECT RS2.*
>>FROM RS1 RIGHT JOIN RS2 ON RS1.A1 = RS2.A1;
>>
>>
>>請參考~
>>
>>
>>Martin
>>
>>
>>
>>

>^^" 抱歉啊.. 之前沒有想清楚就亂寫..
>---> Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC
>這句命令.. 只有取一個TABLE RS1的資料而以..
>要像上面MARTIN 說的.. SELECT 時.. 指定要那個TABLE 的那一個欄位.. 就可以啦...
>^^" 真是抱歉的很..
>AND Think You, Martin.


問題是應該解決了,謝謝你們的回答!

作者 : (ㄚ的續)
[ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2001/1/9 下午 04:07:03
>>>>>以vc++ Dao 資料庫為例,若有兩個資料錄集 RS1(其中有A1,A2,A3 欄位),RS2(其中有A1,A2,A3,A4欄位);若RS1.A1=RS2.A2,我們可以用這個條件利用Inner Join 將這兩個資料錄集關聯起來 m_pRS->Open(dbOpenDynaset,_T(“Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC”));
>>>>>我的問題是上述方法是利用RS1.A1=RS2.A2條件將RS1與RS2兩個資料錄集的資料整合成第3 個資料錄集,但其欄位應以RS1為準,也就是說,我們捉不到RS2的A4欄位的資料!RS2的A1,A2,A3欄位倒捉得到,不論其型態是否與RS1相同!可是當我們真要用到RS2.A4欄位時怎麼辦?請諸位vc高手指點指點!
>>>>>
>>>>>
>>>>
>>>>這個問題跟資料庫有關..
>>>>你是用什麼類形的資料庫
>>>>
>>>>試著把RS2放在前面吧..
>>>>不然.. 就要去看看RIGHT JOIN了..
>>>>哦.. 對了.. join 有分不少種... 不是只有inner一種..
>>>>
>>>>嗯... 這個問題.. 跟COM好像沒有什麼關係..^^"
>>>
>>>有關資料庫是用Access建立的,然後在VC中使用DAO來使用;你建議把RS2放在前面或使用Right Join,好像解決不了問題!我所提的問題雖跟COM無直接關係,但因討論VC的網站且能確實解答問題,實在不多!我初學vc至今也快一年,大部份問題仍找不到答案!我想你們連COM都懂,應該很容易幫忙我這個初學者解決問題吧!在此先謝謝你們了!
>>>
>>
>>
>>我想sha 應該是要:
>>SELECT RS1.*, RS2.A4
>>FROM RS1 INNER JOIN RS2 ON RS1.A1 = RS2.A1;
>>對嗎?
>>不過因 RS1.A1 與 RS2.A1 資料型態一定要相同的!
>>而網友笨毛說的是另一種情形:
>>如果"硬"要取出 RS2.A4 而不一定 RS2.A1 與 RS1.A1 有相同資料的話,
>>用 RIGHT JOIN:
>>SELECT RS2.*
>>FROM RS1 RIGHT JOIN RS2 ON RS1.A1 = RS2.A1;
>>
>>
>>請參考~
>>
>>
>>Martin
>>
>>
>>
>>

>^^" 抱歉啊.. 之前沒有想清楚就亂寫..
>---> Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC
>這句命令.. 只有取一個TABLE RS1的資料而以..
>要像上面MARTIN 說的.. SELECT 時.. 指定要那個TABLE 的那一個欄位.. 就可以啦...
>^^" 真是抱歉的很..
>AND Think You, Martin.


Select * From RS1 Inner Join RS2 On RS1.A1=RS2.A2 Order by RS1.A1 ASC
??????????????

這樣應更是回抓回 7 個欄位吧!!!!!!,怎會是3個或是4個勒............
不管什總join你只要不指定要取的欄位,回傳為所有欄位不是嗎,因為你把二個table合起來了,而你為指定他會抓回所有的不是嗎

我想錯誤是.............你的recordset搞不清楚該指哪一個

所以..............還是要指定傳回的欄位
哈哈..............這個問題應該在database中討論




 板主 : 徵求中
 > COM/DCOM - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - COM/DCOM - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
COM/DCOM
1 估得 490 
2 nick 120 
3 PLAYER 110 
4 天雲 100 
5 Raynor 80 
6 青衫 60 
7 60 
8 Peter.huang 50 
9 酷小毅 50 
10 Giant 50 
COM/DCOM
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.03125