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

Заявка за намиране на публикации с точен набор от тагове (връзка много към много)

Това е точен проблем за релационно деление.

В SQL Server добре работещ метод (приемайки уникално ограничение за post_id,tag ) е

SELECT post_id
FROM   post_tags
GROUP  BY post_id
HAVING MIN(CASE
             WHEN Keyword IN ( 'clever', 'interesting' ) THEN 1
             ELSE 0
           END) = 1
       AND SUM(CASE
                 WHEN Keyword IN ( 'clever', 'interesting' ) THEN 1
                 ELSE 0
               END) = 2  

Така че не бих изключил идеята за използване на GROUP_CONCAT в HAVING вместо това.

HAVING GROUP_CONCAT(DISTINCT Keyword ORDER BY Keyword) = 'clever,interesting'


  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 база данни в html падащ списък

  2. Достъпът е отказан за потребител 'username'@'localhost' (използвайки парола:ДА) в C:\webdev\wamp\www\membershipSite\classes\Mysql.php на ред 9

  3. групирайте по първо и последно появяване

  4. Как да настроите обект (доктрина) за изглед на база данни в Symfony 2

  5. Как NOT LIKE работи в MySQL