台灣最大程式設計社群網站
線上人數
1256
 
會員總數:243634
討論主題:188245
歡迎您免費加入會員
討論區列表 >> MS SQL >> 資料重複出現問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
資料重複出現問題
價值 : 50 QP  點閱數:373 回應數:5

樓主

s35212153
門外漢
0 2
71 2
發送站內信

問題如下:

目前有兩個Table,假設一個為A,一個為B,由於目前需要利用B的兩個欄位(Eid和uid)去找到A裡面的資料,

同時也要直接用A裡面的其中一個欄位(state)找到資料

因此我的指令為: SELECT * FROM A,B WHERE (B.Eid = 'E1' AND B.uid = A.uid) OR A.state = 'able'

執行結果發現 : B.Eid = 'E1' AND B.uid = A.uid ->這個指令抓出來的資料是沒問題

反倒是 : A.state = 'able' -> 這個指令從A Table中抓出來的同一筆資料會重複好多次(確定在資料庫中只有一筆)

根據我的觀察重複的次數是會跟B Table的Row數量相等

不知道該怎麼解決,用過DISTINCT也沒用

搜尋相關Tags的文章: [ 重複 ] , [ sql ] ,
本篇文章發表於2018-04-04 20:12
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
這個要用 join 的方式來作,請將資料丟給我來作

hi.jcchen@msa.hinet.net
本篇文章回覆於2018-04-04 22:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

s35212153
檢舉此回應
資料大致如下:
A Table

uid| State| P |
1 | able | 20|
2 | able | 22|
3 | Char | 50|
4 | Disp | 75|
5 | able | 68|
6 | able | 75|
7 | able | 26|

B table

Eid| Seid| uid|
E1 | E1_1| 1 |
E1 | E1_2| 2 |
E1 | E1_3| 3 |
E2 | E2_1| 4 |
本篇文章回覆於2018-04-05 14:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

小魚
檢舉此回應
我猜你要的應該是這樣,
沒實際跑過應該沒寫錯吧...


本篇文章回覆於2018-04-05 21:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

P陳
檢舉此回應
SELECT 資料表1.Uid, 資料表1.state, 資料表1.P, 資料表2.eid, 資料表2.seid
FROM 資料表1 LEFT JOIN 資料表2 ON 資料表1.Uid = 資料表2.uid
WHERE (((資料表2.eid)="E1")) OR (((資料表1.state)="able"));
本篇文章回覆於2018-04-05 22:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

s35212153
檢舉此回應
謝謝兩位熱心的解答~
本篇文章回覆於2018-04-06 15:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.