0

私は2つのテーブルを持っています。1 つはすべてのカテゴリのリストです。もう 1 つは、物が属するカテゴリのリストです。モノは複数のカテゴリに属する​​ことができます (テーブル 2 に複数のレコードがある場合があります)。

ので、私は持っています

テーブル:

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

...
2340  

次に、2 つの列 (thingID、categoryID) を持つ、thingToCategories という別のテーブル

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

モノ ID が与えられた場合、そのモノ ID がテーブル B に存在するかどうかを示す、すべてのカテゴリのリスト (select * from table A のように) が必要です。

そのため、thingID が 6323-01 の場合、次のようなリストが必要です。

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

私の SQL スキルはさびついており、どのような結合を使用すればよいかさえわかりません。誰でもポインタを与えることができますか?

(私はこのデータベースを継承しました、fwiw)

4

1 に答える 1

0

私はあなたが探していると思いますINNER JOIN

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

INNER JOIN は、両方のテーブルで一致するレコードに基づく選択を保証します。

于 2012-10-12T16:52:20.200 に答える