作者yida0926 (yida)
看板Database
標題[SQL ] 請教撈兩個table不重複的語法
時間Sun Jul 4 15:33:09 2010
大家好,
小弟現在有兩個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