Re: [SQL ] 請問多個相似 Table 串聯查詢如何寫??

看板Database作者 (派斯麵)時間14年前 (2011/04/17 17:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
1. 標準作法是跑4個query,個別查詢 不過asp.net上datasource可以使用別的datasource作為資料來源 也就是說datasourceB/C/D可以設定使用dsA的key作為資料來源 2. 你堅持使用單一query的話 那我上面提到的inner join就不合適了 要用你說的left join拉全部資料 拉完之後,往formB/C/D塞資料時再另外過濾 你說的分類我不懂.. 如果是我的話,首選是方法1 要用方法二的話,我會偏好用dataset先過濾再倒到datagrid 如果是侏羅紀時代的遺跡系統(XD) 前端資料來源不能變動的情況下 那就會用datagridview的資料插入事件(rowwilladded?)檢查欄位有沒有值 再決定要不要插入資料 以上提了三種階段(database/datasource/datagrid event)的對應作法 單論複雜度的話,第三種最簡單 缺點是以後會改的很痛苦 不過不需要另行設定dataset(方法二) 或處理datasource(方法一) 請挑你喜歡的服用吧 ※ 引述《evantw (安安小成)》之銘言: : 我這樣說明好了 : A Table 是存放基本資料 : 所以當 使用者輸入一個搜尋條件後 (ex:工號) : 在 Form 的 A DataGrid 內因該只有一筆 : (基本資料同一工號是不會資料有重複的情況) : 但 B、C、D 分別是 加班 補修 績效資料 : (同一個工號會有多筆紀錄的可能) : 所以會有可能 B、C、D 的 DataGrid 內有多筆或沒有的資料 : 我用 select 語法 : select a*,b.B欄位,c.C欄位,d.D欄位 : from ((a left join b on a.欄位Key=b.欄位Key)left join : c on a.欄位Key=c.欄位Key) left join d on a.欄位Key=d.欄位Key : where a.欄位Key like '工號'; : 假設使用者輸入的工號是 001,002,003,004 時資料跑出來的型態是 : 欄位key A欄位 B欄位 C欄位 D欄位 : 001 1 AAA AAA : 001 1 ABC ACC : 001 1 ACC : 002 2 BBB BBB DDD : 002 2 BBA BBA DDD : 003 3 CCC CCC CCC : 004 4 DDD : 因為 B、C、D 同一個工號的人會有存在多筆的關係 : 導致 A Table 欄位的同一個工號基本資料也會有重複顯示很多行 : 我想請問的就是如果像這樣型態的資料 : 我要把資料依序丟到 Form 上的 A、B、C、D DataGrid 內 : A DataGrid 只需顯示 001,002,003,004 各基本資料(因該各只有一筆) : B、C、D DataGrid 需顯示 001,002,003,004 的資料(可能會有很多筆) : 如果像 C欄位 001 第三筆的是空白的就跳過!! : D欄位 001 和 004 都沒有紀錄就不顯示出來!! : 請問要怎麼分類?? : 是透過 select 做分類?? : 還是要從 Form 上的程式下手呢?? : 希望這樣講解各位能夠明白我所要表達的 =.=" : 謝謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.55.46
文章代碼(AID): #1DggrEbO (Database)
討論串 (同標題文章)
文章代碼(AID): #1DggrEbO (Database)