sql >> データベース >  >> RDS >> Mysql

カテゴリ別にアイテムを一覧表示

    おそらく参加 したいと思うでしょう。 アイテムテーブルのitem2catテーブル:

    SELECT
      item.id
    , item.name
    , item.desc
    FROM item
    INNER JOIN item2cat ON item.id = item2cat.itemID
    WHERE item2cat.catID = [category_id]
    

    または例えば

    SELECT
      item.id
    , item.name
    , item.desc
    , category.id
    , category.name
    FROM item
    INNER JOIN item2cat ON item.id = item2cat.itemID
    INNER JOIN category ON item2cat.catID = category.id
    WHERE category.id IN ( [category_id], [category_id], [category_id])
    

    更新
    次のようにテーブルIDを変更した場合:

    item (itemId, name, desc)
    item2cat (itemId, categoryId)
    category (categoryId, name, etc)
    

    次のように最初のクエリを書き直すことができます:

    SELECT
      item.itemId
    , item.name
    , item.desc
    FROM item
    INNER JOIN item2cat USING( itemId )
    WHERE item2cat.categoryId = [category_id]
    

    もう1つの利点は、id すべてのテーブルの列が明確になりました。



    1. MySQLでCASE..WHENを適切に使用するにはどうすればよいですか

    2. フォームに1つのforigenk値を使用して複数の行を挿入します

    3. MySQLの複数の列に基づいてランクを決定する

    4. 既存のENUMタイプに新しい値を追加する