線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:957
推到 Plurk!
推到 Facebook!

Master&Detail多關聯的sql語法@@

尚未結案
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-12 21:35:24 IP:211.74.xxx.xxx 未訂閱
請問一下… 我有一個學院的table--COLLEGE(col_id),及學院詳細資料COLLEGE_TYPE 系所TABLE--DEPARTMENT(dep_id),及系所詳細資料DEPARTMENT_TYPE    我的DBGRID1中,是show出COLLEGE和COLLEGE_TYPE的資料, DBGRID2中,是show出DEPARTMENT和DEPARTMENT_TYPE的資料, 而當DBGRID1中選到某個學院時,則DBGRID2就只會SHOW出該學院中的系所資料 我是用Master和detail的作法, 可能是寫法錯誤,出現錯誤訊息:department不是唯一table… 是不是因為department中的key沒有col_id呢? 請各位大人教教我吧…
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-12 21:58:53 IP:218.16.xxx.xxx 未訂閱
Department 的 Primary Key 不一定要有 Col_id 但就一定要有一個 index 在 Col_id 否則不能連成 Master - Detail。 連 Master - Detail 時 : 1. 在 Department Table 的 Property Editor 的 MasterKey 按 [...] 2. 選好以 Col_id 為主的 Index 3. Master 及 Detail 選好 Col_id 4. 按 Add 後按 OK
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-12 22:13:27 IP:211.74.xxx.xxx 未訂閱
可是我是先把各別的學院資料和系所資料利用query分別關聯起來 而不是用table元件來做的…    那請問用query的寫法該如何寫呢^^|
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-12 22:22:47 IP:218.16.xxx.xxx 未訂閱
1. qDept 的 Master Sources 設定成 qCollege 的 DataSources 2. qDept.SQL.Text := 'select .... from ... where .... and col_id = :col_id order by ....' 這樣就可以了
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-13 00:07:39 IP:211.74.xxx.xxx 未訂閱
引言: 1. qDept 的 Master Sources 設定成 qCollege 的 DataSources 2. qDept.SQL.Text := 'select .... from ... where .... and col_id = :col_id order by ....' 這樣就可以了
呼呼…這個我有寫過了… 只是現在,因為DETAIL本身就是兩個TABLE組成的, 所以我就搞不清楚了, 而且我用的是MYSQL,所以本身也沒有FOREIGN KEY 當超過兩個以上的TABLE要做關聯時,好像用WHERE就會跑不出資料來, 所以我是使用LEFT JOIN 不知這樣的描述看不看得懂哩… 因為不能用 >
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-13 10:35:19 IP:61.221.xxx.xxx 未訂閱
引言: 只是現在,因為DETAIL本身就是兩個TABLE組成的,
在 master 的 dataset 用
  SELECT * FROM TABLE1
在 detail 的 dataset 設定如同 Justmade 的說明設定方法後, command 設定為:
  SELECT * FROM TABLE2, TABLE3 WHERE T2.COL1 = T3.COL1 AND T2.COL2 = T3.COL2 AND T2.COL1 = :COL_ID --使用 WHERE 子句
  SELECT * FROM TABLE2 LEFT JOIN TABLE3 ON T2.COL1=T3.COL1 AND T2.COL2=T3.COL2 WHERE T2.COL1 = :COL_ID --使用 LEFT JOIN 子句
若還不行的話, 就要麻煩你將你這三個 TABLE 的欄位, 型態 POST 上來, 再幫你看看是哪裡的問題!
系統時間:2024-05-19 7:12:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!