[SQL ] Sqlite inner join 問題請教

看板Database (資料庫)作者 (溫柔殺手)時間5年前 (2019/04/10 10:22), 編輯推噓4(4022)
留言26則, 5人參與, 5年前最新討論串1/1
資料庫名稱: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

04/10 19:11, 5年前 , 1F
INNER JOIN 必須二份資料表都有資料才會有哦
04/10 19:11, 1F

04/10 19:16, 5年前 , 2F
但看你第一張原始資料如果拆成二張似乎都有資料,join 語法
04/10 19:16, 2F

04/10 19:16, 5年前 , 3F
看起來沒問題,看一下是不是資料誤值多了空白或其他
04/10 19:16, 3F

04/11 08:18, 5年前 , 4F
@J大感謝回應,這是我的兩份資料表原始資料
04/11 08:18, 4F

04/11 08:19, 5年前 , 5F

04/11 08:19, 5年前 , 6F

04/11 08:20, 5年前 , 7F
在請您指導一下,感謝。
04/11 08:20, 7F

04/11 08:30, 5年前 , 8F
阿....我發現問題了,在一開始的切割資料,我的欄位名稱
04/11 08:30, 8F

04/11 08:30, 5年前 , 9F
弄反了,難怪對不起來。不好意思。
04/11 08:30, 9F

04/11 08:32, 5年前 , 10F
這是合併後的資料,請問應該怎
04/11 08:32, 10F

04/11 08:33, 5年前 , 11F
麼去除重覆資料?Die_num?
04/11 08:33, 11F

04/11 11:39, 5年前 , 12F
不懂你指的重覆是指哪個部份
04/11 11:39, 12F

04/11 13:01, 5年前 , 13F
diedata.* 或利用別名選出要的就好
04/11 13:01, 13F

04/11 14:15, 5年前 , 14F
@C大,可以從資料的圖中發現Die_num出現兩次。
04/11 14:15, 14F

04/11 18:04, 5年前 , 15F

04/11 18:05, 5年前 , 16F
我只會MSSQL,這樣是你要的結果嗎?
04/11 18:05, 16F

04/12 08:27, 5年前 , 17F
@C大,感謝,我按照你的精神把句子改了一下,是可以的。
04/12 08:27, 17F

04/12 08:27, 5年前 , 18F
select a.*, b.Item FROM diedata as a INNER JOIN
04/12 08:27, 18F

04/12 08:28, 5年前 , 19F
品名對模號 as b on a.Die_num = b. Die_num;
04/12 08:28, 19F

04/12 08:28, 5年前 , 20F
所以Inner join並不會把重覆的資料去除。這是正常的嗎?
04/12 08:28, 20F

04/12 23:11, 5年前 , 21F
*就是all, 沒指名就會通通都帶出來, 建議養成別名習慣
04/12 23:11, 21F

04/13 20:08, 5年前 , 22F
你只打一個*,2個資料表沒有別名,這樣會select出2個資料表
04/13 20:08, 22F

04/13 20:08, 5年前 , 23F
全部欄位
04/13 20:08, 23F

04/13 20:11, 5年前 , 24F
查詢結果欄位是看select後列出的欄位,inner join主要是設
04/13 20:11, 24F

04/13 20:11, 5年前 , 25F
定2個資料表的關聯條件…
04/13 20:11, 25F

04/14 20:39, 5年前 , 26F
了解,感謝指導。
04/14 20:39, 26F
文章代碼(AID): #1ShLDAYu (Database)
文章代碼(AID): #1ShLDAYu (Database)