sql >> Database teknologi >  >> RDS >> Mysql

Vælg rækker, hvor pivot har ALLE id'er

Du kan tilføje en having klausul til din forespørgsel for at sikre, at hver gruppe af c.id har alle fire 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;    

Sample SQL Fiddle

Hvis du også har brug for produktoplysningerne, kan du bruge ovenstående forespørgsel som en afledt tabel og forbinde den med produkttabellen.




  1. Understøtter SQLDeveloper eksekvering af scripts?

  2. Codeigniter aktiv rekord med flere like eller?

  3. Fix:"Sætningen BACKUP LOG er ikke tilladt, mens gendannelsesmodellen er SIMPLE" i SQL Server (og SQL Edge)

  4. Mysql joinforespørgsel på tre tabeller med flere kolonner