私はMySQLには新しく、ジョインの仕組みを理解しようとしています。 私は2つのテーブル:categories
とproducts
を持っていて、それぞれid
とname
フィールドです。 3番目の表は、category_id
とproduct_id
のproduct_to_category(多対多)です。ジョインの理解:指定されたプロダクトを持たないカテゴリのリスト
特定の製品(ID = 5)を含むすべてのカテゴリをリストしたかったのです。これを行うには 、私は次のクエリを作っ:
SELECT `categories`.`id`, `categories`.`name`
FROM `categories`
LEFT JOIN `product_to_category`
ON `categories`.`id` = `product_to_category`.`category_id`
WHERE `product_to_category`.`product_id` = 5
それが逆に何かすることが可能である場合、私は疑問に思って:指定された製品が含まれていないすべてのカテゴリを一覧表示するには?
多くの感謝!
がよろしいですあなたは_manyツーmany_関係を使用したいですか?私は2つのテーブルを作るでしょう:マスターテーブルとして 'categories'(' id'で)と詳細テーブルとして '製品'( 'id'と' category_id'で)。どう思いますか? –
私は多くの異なるカテゴリに1つの製品を持ちたいので、それぞれのカテゴリには多くの製品があります。 –