sql >> Databáze >  >> RDS >> Mysql

Vyberte řádky, kde má pivot VŠECHNA ID

Můžete přidat having klauzule k vašemu dotazu, abyste se ujistili, že každá skupina c.id má všechny čtyři 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;    

Ukázka SQL Fiddle

Pokud potřebujete také podrobnosti o produktu, můžete použít výše uvedený dotaz jako odvozenou tabulku a spojit ji s tabulkou produktů.




  1. Vytvoření licenčního systému

  2. Jak mohu vyčistit dočasné tabulky na mysql

  3. Pokud nebude nalezen jeden řádek, vrátí výchozí hodnotu

  4. Jak chránit databázi MySQL nebo MariaDB před SQL Injection:Část první