category_product
---------------
id_category
id_product
product
---------------
id_product
id_manufacturer
manufacturer
---------------
id_manufacturer
name
Id_categoryが何かと等しいときに、製造元からすべての名前を選択するようにSQLクエリを作成するにはどうすればよいですか?
これは、テーブルの単純な内部結合です。
SELECT m.name, cp.id_category
FROM manufacturer as m
INNER JOIN product as p
ON m.id_manufacturer = p.id_manufacturer
INNER JOIN category_product as cp
ON p.id_product = cp.id_product
WHERE cp.id_category = 'some value'
結合のないクエリは次のようになります。
SELECT m.name
FROM manufacturer as m, product as p, category_product as cp
WHERE cp.id_category = <your value>
AND cp.id_product = p.id_product
AND p.id_manufacturer = m.id_manufacturer
Select M.name
From manufacturer M
Where M.id_manufacturer in ( Select P.id_manufacturer
From product P
Where P.id_product in ( Select C.id_product
From category_product C
Where C.id_category = ?))
SELECT m.name, cp.id_category
FROM manufacturer AS M INNER JOIN product AS P
ON M.id_manufacturer = M.id_manufacturer
INNER JOIN category_product AS CP
ON P.id_product = CP.id_product
WHERE cp.id_category = 'add value'
のようなものを試してください
SELECT m.*
FROM category_product cp INNER JOIN
product p ON cp.id_product = p.id_product INNER JOIN
manufacturer m ON p.id_manufacturer = m.id_manufacturer
WHERE cp.id_category = <your_value>