如果两个表中存在记录,则添加列

时间:2012-10-12 16:48:32

标签: sql

我有两张桌子。一个是所有类别的列表。另一个是事物可能属于的类别列表。一个东西可以属于多个类别(它可能在表2中有多个记录)

所以,我有

表:

categories 
1,   horror
2,   romance
3,   post modern
4,   Canadian
5,    English

...
2340  

然后另一个表,thingsToCategories,有两列(thingID,categoryID)

thingID   categoryID
6323-01    1
6323-01    4
6323-01    5
1342-01    2
1342-01    4

给定一个thingID,我需要一个所有类别的列表(如表A中的select *),并指示表B中是否存在该事物ID

所以,给定6323-01的thingID,我需要一个这样的列表:

1,   horror    selected
2,   romance
3,   post modern
4,   Canadian   selected
5,    English   selected

我的SQL技能已经生锈而且非常糟糕我甚至不确定要使用哪种连接。任何人都可以提供任何指示吗?

(我继承了这个数据库,fwiw)

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找INNER JOIN

SELECT * FROM categories
INNER JOIN thingsToCategories ON categories.CategoryID = thingsToCategories.CategoryID
WHERE thingsToCategories.thingID ='6323-01'

INNER JOIN将确保根据两个表中匹配的记录进行选择。