Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybierz wiersze z wieloma tagami... czy jest lepszy sposób?

Nie ma potrzeby wykonywania wielu sprzężeń. Jeśli chcesz dopasować wszystkie tagi, możesz użyć IN klauzula z podzapytaniem takim jak:

select p.sku, p.name, p.path 
from shop_products p
where p.sku in (
    select pc.product_sku 
    from shop_products_categories pc 
    inner join shop_categories c on pc.category_id = c.id
    where c.path in ('flowers', 'romance')
    group by pc.product_sku
    having count(distinct c.path) = 2
)

Pamiętaj, że będziesz musiał dostosować liczbę 2, aby była liczbą unikalnych tagów, do których pasujesz. Uważaj, jeśli są to dane wprowadzone przez użytkownika i dwukrotnie wprowadzą ten sam tag.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić nieedytowalny/generowany kod w netbeans

  2. mysql2sqlite.sh Auto_Increment

  3. Czy mogę zautomatyzować wstawianie hasła pliku PEM dla certyfikatów SSL w MySQL?

  4. Czy można używać wersji beta Sphinxa w środowisku produkcyjnym?

  5. Jak uzyskać procent sumy, gdy zapytanie ma GROUP BY?