Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете редове, където опорната точка има ВСИЧКИ идентификатори

Можете да добавите having клауза към вашата заявка, за да се уверите, че всяка група c.id има и четирите 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;    

Примерна SQL Fiddle

Ако имате нужда и от подробности за продукта, можете да използвате горната заявка като производна таблица и да я присъедините към таблицата с продуктите.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql WorkBench AES 256 декриптиране

  2. MySQLNonTransientConnectionException Не можа да се създаде връзка със сървъра на базата данни. Причинено от:java.lang.NullPointerException

  3. Може ли Laravel да се справи с приложения с голям трафик?

  4. Как да съхранявате данни, чийто тип може да бъде число, дата или низ в mysql

  5. Изключение на mySQL:Не може да се свърже с нито един от посочените хостове на MySQL. чрез C#