看板 Database 關於我們 聯絡資訊
大家好, 小弟現在有兩個Table, 一個Table存放地區的基本資訊,並使用ID做為Primary Key 另一個Table則是存放此地區的相關屬性,例如圖片、影片位置等, 也使用ID做為FK, 但現在有個問題就是Table B有存放5個Table A的資料, 我如果使用select a.name from a,b where a.id=b.id 會出現在五筆資料, 但其實我只要一筆而已,因為我只是要判斷此地方是否有無相關資訊, 想請問各位, 這有辦法使用SQL語法處理嗎? 因為我目前是用程式去額外判斷處哩, 但這樣似乎顯得很沒效率。 btw DBMS id M$ SQL 2008, thx. ========================================= 抱歉可能敘述不夠詳細, 我的目的是一個地區會有很多故事內容, 每個故事內容都會有相對應的影片或是圖片檔案, 因為我會這樣的詢問是因為在做搜尋的時候, 我如果用select a.name from a,b where a.id=b.id 就可能會找到五筆資料, search list會出現五筆相同的資料, 因為這個地區有五個故事內容, 但其實我只是想知道這個地區有無相關資料而已, 我目前使用的是select dintinct a.name form a,b where a.id=b.id 可以解決問題, 但我想了解是否有更好的解法或是更好的DB schema Thx. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.26.1
slalala:如敘述~本身設計很怪 07/04 16:07
※ 編輯: yida0926 來自: 140.134.26.1 (07/04 16:51)
slalala:知道後呢? 話說DISTINCT通常在資料很多時 會很科科科的 07/05 00:33
evernever:如果只是要知道"有無"資料, 可以用 exist 07/05 07:27
Antzzz:table b同一個id有五筆,那id要怎麼當table b的PK? 07/05 18:10
Antzzz:對不起我看錯了,是FK 07/05 18:21
gun5566:如果只是想知道有無資料 可以用COUNT(1) 條件用IN... 07/05 19:21
sidetalker:select name from a where exists (select 1 from b 07/06 02:51
sidetalker:where b.ID = a.ID) 07/06 02:55
yida0926:謝謝各位,已成功解決問題^^ 07/06 17:31