看板 Database 關於我們 聯絡資訊
資料庫名稱:Sqlite 資料庫版本:3 內容/問題描述:使用DB Browser 3.11.2 各位板上的大大早上好。我有一份原始資料如下。 https://imgur.com/NcyhUQH 為了跟其他資料表格作連結我把這份表格分拆成 模具對品名 diedata 兩份資料表 兩份資料表的結構如下 CREATE TABLE "diedata" ( "Die_num" TEXT UNIQUE, "Cut_OD" REAL, "Cut_ID" REAL, "Cut_High" REAL, "Cut_avalible" TEXT, "Plate_type" TEXT, "Plate_Jontion" REAL, "Plate_OD" REAL, "Plate_tap" TEXT, "Stripper" REAL, "Strip_Hole" REAL, FOREIGN KEY("Die_num") REFERENCES "品名對模號"("Die_num") ON UPDATE CASCADE ); CREATE TABLE "品名對模號" ( "Die_num" TEXT, "Item" TEXT ); 我想嘗試將兩份資料表作inner join 我下的指令是 SELECT * FROM diedata INNER JOIN 品名對模號 ON diedata.Die_num = 品名對模號. Die_num; 得到如下結果 https://imgur.com/jyS28wF 我預期應該會得到原來的那份資料的。請問是不是出了什麼問題? 煩請高手指導,感恩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.116.8 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1554862922.A.8B8.html
joery: INNER JOIN 必須二份資料表都有資料才會有哦 04/10 19:11
joery: 但看你第一張原始資料如果拆成二張似乎都有資料,join 語法 04/10 19:16
joery: 看起來沒問題,看一下是不是資料誤值多了空白或其他 04/10 19:16
yimean: @J大感謝回應,這是我的兩份資料表原始資料 04/11 08:18
yimean: https://imgur.com/uZ8kx0O 04/11 08:19
yimean: https://imgur.com/NArhRkO 04/11 08:19
yimean: 在請您指導一下,感謝。 04/11 08:20
yimean: 阿....我發現問題了,在一開始的切割資料,我的欄位名稱 04/11 08:30
yimean: 弄反了,難怪對不起來。不好意思。 04/11 08:30
yimean: https://imgur.com/vGhUsPY 這是合併後的資料,請問應該怎 04/11 08:32
yimean: 麼去除重覆資料?Die_num? 04/11 08:33
ChingLan326: 不懂你指的重覆是指哪個部份 04/11 11:39
konkonchou: diedata.* 或利用別名選出要的就好 04/11 13:01
yimean: @C大,可以從資料的圖中發現Die_num出現兩次。 04/11 14:15
ChingLan326: https://i.imgur.com/H0oXr9Q.png 04/11 18:04
ChingLan326: 我只會MSSQL,這樣是你要的結果嗎? 04/11 18:05
yimean: @C大,感謝,我按照你的精神把句子改了一下,是可以的。 04/12 08:27
yimean: select a.*, b.Item FROM diedata as a INNER JOIN 04/12 08:27
yimean: 品名對模號 as b on a.Die_num = b. Die_num; 04/12 08:28
yimean: 所以Inner join並不會把重覆的資料去除。這是正常的嗎? 04/12 08:28
konkonchou: *就是all, 沒指名就會通通都帶出來, 建議養成別名習慣 04/12 23:11
tmio: 你只打一個*,2個資料表沒有別名,這樣會select出2個資料表 04/13 20:08
tmio: 全部欄位 04/13 20:08
tmio: 查詢結果欄位是看select後列出的欄位,inner join主要是設 04/13 20:11
tmio: 定2個資料表的關聯條件… 04/13 20:11
yimean: 了解,感謝指導。 04/14 20:39