動態創建數據窗口時省略表名的方法

    在使用synatax動態創建數據窗口時,如果我們關聯了兩個表,生成的列明會變爲"表名_列名"的格式,但可能有時候又變爲了僅"列名"的格式,很是困擾

    如果我們在設計數據庫時已經保證每個表的字段名稱是唯一的,那麼可以使用下面的方法進行處理,例如有兩個表

    CREATE TABLE T_MASTER(
        MASTER_NO        VARCHAR(10)    NOT NULL,
        MASTER_MEMO      VARCHAR(255)   NULL
    )       

    CREATE TABLE T_DETAIL(
        DETAIL_NO        VARCHAR(10)    NOT NULL,
        DETAIL_DNO       VARCHAR(10)    NOT NULL,
        DETAIL_MEMO      VARCHAR(255)   NULL
    )       

    如果使用一般的語法動態創建數據窗口時,不管是使用
    SELECT MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO FROM T_MASTER,T_DETAIL WHERE MASTER_NO = DETAIL_NO
    還是使用
    SELECT T_MASTER.MASTER_NO,T_MASTER.MASTER_MEMO,T_DETAIL.DETAIL_DNO,T_DETAIL.DETAIL_MEMO FROM T_MASTER,T_DETAIL WHERE MASTER_NO = DETAIL_NO

    數據窗口列可能變爲
    T_MASTER_MASTER_NO,T_MASTER_MASTER_MEMO,T_DETAIL_DETAIL_DNO,T_DETAIL_DETAIL_MEMO   

    這是因爲PB爲了避免列名重複而採用的一種命名方法,但這樣就給我們實際應用時帶來一定的小障礙,避免的方法也較簡單,改寫一下SQL語句即可
    SELECT MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO FROM (T_MASTER INNER JOIN T_DETAIL ON MASTER_NO = DETAIL_NO) WHERE ....

    數據窗口列可能變爲
    MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO

    注意
    (1)INNER JOIN,不要擔心這個市SQL92規範,幾乎所有數據庫都支持,放心使用,它同平常書寫的方式可以等價轉換。
    (2)括號,一定不能省略,否則不起作用。只有這樣,PB纔會認爲(分析爲)是一個表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章