0

データベースの宿題に問題があります。文字「S」で始まるカテゴリを持つ書籍の ISBN とタイトルを表示するサブクエリを作成する必要があります。

テーブル: BOOK(ISBN, Category, Title, Description, Edition, PublisherID) および CATEGORY(CatID, CatDescription)

キー: BOOK(ISBN_PK, Category_FK) および CATERGORY(CatID_PK) ---> Category=CatID

今のところ、いくつかのコードがありますが、エラーが返されます。私はこの HW を事前に行っていて、まだサブクエリを学習していないため、問題の解決策のほとんどをオンラインで見つけました。助けてください。

私のコード:

SELECT ISBN, title FROM book WHERE category LIKE (SELECT catdescription FROM category WHERE catdescription LIKE 's%')
4

3 に答える 3

2

サブクエリを使用するのではなく、両方のテーブルを結合できます。

SELECT  a.*
FROM    book a
        INNER JOIN category b
            ON a.Category = b.CatID
WHERE   b.CatDescription LIKE 'S%'

結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。


エンジンを使用している場合FULLTEXTSEARCHではなく、使用することを検討してください。LIKEMyISAM

于 2013-04-28T17:08:56.300 に答える
0

LIKE を IN に変更

   SELECT ISBN, title FROM book WHERE title IN (SELECT catdescription FROM category WHERE catdescription LIKE 's%')

編集:

SELECT ISBN, title FROM book WHERE ISBN IN (SELECT catdescription FROM category WHERE catdescription LIKE 's%')
OR title IN (SELECT catdescription FROM category WHERE catdescription LIKE 's%')
于 2013-04-28T17:10:50.587 に答える
0

サブクエリでは like を使用できません。おそらく、次のクエリに変更するだけでも機能します。

SELECT ISBN, title 
  FROM book 
  WHERE category in (SELECT catdescription 
                      FROM category WHERE catdescription LIKE 's%')

これは、book.category フィールドが category.catdescription フィールドに対応していると想定しています。

于 2013-04-28T17:10:58.633 に答える