posts - 60,comments - 71,trackbacks - 0

              我們在做兩張表或多張表的關聯查詢時,有時會碰到查出重復記錄的情況,這對于查詢來講重復的數據是沒有意義的,應該去掉,如有A表和B表,表的結構如下:

          A表:  a_id varchar(10),a_name varchar(10),a_height varchar(10)
          數據有:
          1001,a_ffff,12
          1002,a_eeee,16
          1003,a_kkkk,13

          B表:   b_id varchar(10),b_name varchar(10),b_length varchar(10)
          數據有:
          1001,b_pppp,20
          1001,b_pppp,10
          1002,b_yyyy,14
          1003,b_www,12
          1003,b_www,18

          進行關聯查詢時: select A.a_id,A.a_name,A.a_height,B.b_namefrom A,B where A.a_id=B.b_id;(1)

          這樣就會查詢到如下的數據:

          1001,a_ffff,12,b_pppp
          1001,a_ffff,12,b_pppp
          1002,a_eeee,16,b_yyyy
          1003,a_kkkk,13,b_www
          1003,a_kkkk,13,b_www

          這樣就會造成有重復數據的情況,當然這和要查詢的數據內容有關,即如果還要查詢B表中的b_length 字段內容時,就不會是有重復記錄的情況了,當然這和實際需求有關,如果需求只需要查詢(1)中的內容,這就是會有重復記錄了,解決的辦法很簡單,即在查詢的字段前面加上distinct即可去掉重復記錄了,
          當然B表中的數據還有一個特點,即b_id相同的記錄的b_name的數據是相同的,其他字段的數據可相同也可不同.

          當然這只是舉的一個例子,實際需求中肯定會有B表這樣的數據的情況,另外,再說一下,這和要查詢的字段內容有關,即(1)語句如果還要查詢B表中的b_length 這個字段時,在上述測試的數據中,是不會存在相同記錄的.

          posted on 2008-07-31 21:55 henry1451 閱讀(1090) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 星子县| 玉屏| 浦县| 富川| 长乐市| 崇礼县| 永定县| 安西县| 潍坊市| 名山县| 玛曲县| 桃园县| 喀喇沁旗| 七台河市| 长治县| 遂溪县| 梁山县| 江源县| 新竹县| 兰考县| 莎车县| 湘阴县| 明水县| 横山县| 玉环县| 雅江县| 历史| 博野县| 瑞昌市| 平果县| 裕民县| 泸定县| 梁平县| 施秉县| 错那县| 周至县| 德阳市| 雅江县| 无锡市| 新竹市| 芷江|