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

看板Database作者 (安安小成)時間14年前 (2011/04/17 11:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/6 (看更多)
資料表情況假設是 TableA 欄位A 欄位Key 1 001 2 002 3 003 4 004 Table B 欄位key B欄位 001 AAA 001 ABC 001 ACC 002 BBB 002 BBA 003 CCC Table C 欄位key C欄位 001 AAA 001 ACC 002 BBB 002 BBA 003 CCC 004 DDD Table D 欄位key D欄位 002 BBB 002 BBA 003 CCC 我用了 left join 語法將 a,b,c,d Table 連結在一起 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 但是顯示出來的資料如下 欄位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 現在是在程式 Form 上有 4個 Table 個別顯示 a,b,c,d 的資料 就以 a Table 上就會有 A 欄位多筆重複顯示 欄位key A欄位 001 1 001 1 001 1 002 2 002 2 003 3 004 4 C Table 上則是 欄位key C欄位 001 AAA 001 ACC 001 002 BBB 002 BBA 003 CCC 004 DDD 請問有什麼方式可以變成在 a Table 上同一筆欄位Key僅顯示一次 欄位key A欄位 001 1 002 2 003 3 004 4 C Table 上第三筆空白處不顯示跳過呢 欄位key C欄位 001 AAA 001 ACC 002 BBB 002 BBA 003 CCC 004 DDD 這部分是還要從 select 語法處修改嗎?? 還是從 Form 程式碼上做程式的判斷呢?? 請各位能否給個提示 謝謝~~ ※ 引述《Piceman (派斯麵)》之銘言: : 推文竟然要等240秒... : 先假設你知道怎麼安排查詢結果到各表單中 : 你需要的會是 : select a.*, b.*, c.*,d.* : from tablea as a, tableb as b, tablec as c, talbed as d : on a.key=b.key .... : where a.data_key='key_value' : 大概是這樣的語法 : 關鍵字請查(inner/left) join : ※ 引述《evantw (安安小成)》之銘言: : : 資料庫內有 4個 Table : : 其 A Table 為存放基本資料 : : 其 B、C、D Table 與 A 之間彼此用 Data_Key(工號) 欄位串聯 : : 在 A Table 每個 Data_key 只有一筆 : : 而 B、C、D Table 存放的內容分別是 加班、請假、績效 : : 所以會存在同 Table 內同一個 Data_key 有多筆情況 : : 且這 4個 Table 彼此欄位上有些欄位命名會相同重複 : : 現在我目前需要做一個查詢系統 : : 讓使用者在欄位上打上 Data_Key (工號) 後相關資料 : : 基本資料 + 加班紀錄 + 請假紀錄 + 績效紀錄 同時出現 : : 目前在程式的 Form 內分別也放了 4個 Table 來顯示這 4個 Table 查詢的結果 : : 而目前我的作法就很傳統的 : : 先用 Data_key 查完基本資料並顯示在 Form Table 上後 : : 再依序個別查詢 加班、請假、績效 的 Table : : 我想了解的是有沒有辦法可以一次串聯查出這 4個 Table 後 : : 分別可以顯示在 Form 上 4個 Table 上 : : (在資料庫的這 4 個 Table 欄位上會有幾個是名稱是重複的) : : 如果有說明不清楚的可回復告知 : : 謝謝各位~~ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.99.68.46
文章代碼(AID): #1Dgc5LJf (Database)
討論串 (同標題文章)
文章代碼(AID): #1Dgc5LJf (Database)