作者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
1F:推 slalala:如叙述~本身设计很怪 07/04 16:07
※ 编辑: yida0926 来自: 140.134.26.1 (07/04 16:51)
2F:推 slalala:知道後呢? 话说DISTINCT通常在资料很多时 会很科科科的 07/05 00:33
3F:推 evernever:如果只是要知道"有无"资料, 可以用 exist 07/05 07:27
4F:→ Antzzz:table b同一个id有五笔,那id要怎麽当table b的PK? 07/05 18:10
5F:→ Antzzz:对不起我看错了,是FK 07/05 18:21
6F:推 gun5566:如果只是想知道有无资料 可以用COUNT(1) 条件用IN... 07/05 19:21
7F:推 sidetalker:select name from a where exists (select 1 from b 07/06 02:51
8F:→ sidetalker:where b.ID = a.ID) 07/06 02:55
9F:→ yida0926:谢谢各位,已成功解决问题^^ 07/06 17:31