sql >> Databasteknik >  >> RDS >> Mysql

Välj rader där pivot har ALLA ID

Du kan lägga till en having klausul till din fråga för att se till att varje grupp av c.id har alla fyra cp.product_id:

SELECT
    c.id as company_id
FROM
    `companies` as c
    LEFT JOIN `company_products` cp ON cp.company_id = c.id
WHERE
    c.id IN (8, 13)
    AND cp.product_id IN (1,2,4,8)
GROUP BY
    c.id
HAVING COUNT(DISTINCT cp.product_id) = 4;    

Exempel på SQL-fiol

Om du också behöver produktinformationen kan du använda ovanstående fråga som en härledd tabell och sammanfoga den med produkttabellen.




  1. Uppdatera en MySql-databas med PHP via en onClick-javascript-funktion

  2. Att hålla en applikationsdatabas agnostisk (ADO.NET vs inkapslande DB-logik)

  3. Linq to Entities Group By (OUTTER APPLY) oracle 11.2.0.3.0 stöder inte applicera

  4. Finns det en enda fråga som kan uppdatera ett sekvensnummer över flera grupper?