Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एकाधिक टैग वाली पंक्तियों का चयन करें ... क्या कोई बेहतर तरीका है?

एकाधिक जुड़ने की आवश्यकता नहीं है। यदि आपको सभी टैगों का मिलान करने की आवश्यकता है, तो आप एक IN . का उपयोग कर सकते हैं इस तरह की एक सबक्वेरी के साथ क्लॉज:

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
)

ध्यान दें कि आपके द्वारा मिलान किए जा रहे अद्वितीय टैग की संख्या के रूप में आपको संख्या 2 को समायोजित करने की आवश्यकता होगी। सावधान रहें यदि यह उपयोगकर्ता द्वारा दर्ज किया गया डेटा है और वे एक ही टैग को दो बार दर्ज करते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. देशांतर और अक्षांश द्वारा दूरी की गणना के साथ SQL क्वेरी को कैसे अनुकूलित करें?

  2. अरबी पाठ को MySQL डेटाबेस में सहेजें

  3. PDO को mysqli में कैसे बदलें?

  4. MySQL में तिथि के अनुसार ऑर्डर कैसे करें

  5. sql_mode के खाली होने के बावजूद संग्रहीत कार्यविधि sql_mode=only_full_group_by के साथ असंगत है