Master&Detail多關聯的sql語法@@ |
尚未結案
|
miga
初階會員 發表:61 回覆:92 積分:30 註冊:2002-08-27 發送簡訊給我 |
請問一下…
我有一個學院的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 發送簡訊給我 |
|
miga
初階會員 發表:61 回覆:92 積分:30 註冊:2002-08-27 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
miga
初階會員 發表:61 回覆:92 積分:30 註冊:2002-08-27 發送簡訊給我 |
引言: 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 發送簡訊給我 |
引言: 只是現在,因為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 上來, 再幫你看看是哪裡的問題! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |