SQL多对多选择

Ken*_*Ken 27 mysql sql many-to-many

category_product
---------------
id_category
id_product

product
---------------
id_product
id_manufacturer

manufacturer
---------------
id_manufacturer
name
Run Code Online (Sandbox Code Playgroud)

我如何创建一个SQL查询,以便在id_category等于某事时从制造商中选择所有名称?

chr*_*yss 38

这是表格的直接内部联接:

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'
Run Code Online (Sandbox Code Playgroud)


YoK*_*YoK 14

没有连接的查询将如下所示:

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 
Run Code Online (Sandbox Code Playgroud)

  • 这并不是没有连接。连接只是隐式的。 (4认同)