SQL many to many select

前端 未结 5 1941
醉酒成梦
醉酒成梦 2020-12-24 07:43
category_product
---------------
id_category
id_product

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

manufacturer
---------------
id_manufacturer
name


        
相关标签:
5条回答
  • 2020-12-24 07:59

    It's a straightforward inner join of the tables:

    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'
    
    0 讨论(0)
  • 2020-12-24 07:59

    Try something like

    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>
    
    0 讨论(0)
  • 2020-12-24 08:14
    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'
    
    0 讨论(0)
  • 2020-12-24 08:15
    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 = ?))
    
    0 讨论(0)
  • 2020-12-24 08:20

    Query without joins will look like following :

    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 
    
    0 讨论(0)
提交回复
热议问题