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

पकाने की विधि डेटाबेस, संघटक द्वारा खोजें

चूंकि एक नुस्खा कई सामग्रियों का उपयोग कर सकता है और आप उन व्यंजनों की तलाश कर रहे हैं जो निर्दिष्ट सामग्री में से एक या अधिक का उपयोग करते हैं, आपको DISTINCT का उपयोग करना चाहिए डुप्लिकेट परिणामों को रोकने के लिए कीवर्ड जहां एक नुस्खा निर्दिष्ट सूची से एक से अधिक सामग्री का उपयोग कर रहा है। साथ ही, आप IN . का उपयोग कर सकते हैं एकाधिक संघटक आईडी पर फ़िल्टर करने के लिए खंड।

select DISTINCT r.name
from 
    recipes r
    inner join ingredient_index i
    on i.recipe_id = r.recipe_id
where i.ingredient_id IN (7, 5);

वैकल्पिक रूप से, यदि आप उन व्यंजनों की तलाश कर रहे हैं जो सूची में निर्दिष्ट सभी सामग्रियों का उपयोग कर रहे हैं, तो आप परिणामों को नुस्खा के नाम से समूहित कर सकते हैं और जांच सकते हैं कि रिकॉर्ड की संख्या आपकी सूची में सामग्री की संख्या के समान है या नहीं।

select r.name
from 
    recipes r
    inner join ingredient_index i
    on i.recipe_id = r.recipe_id
where i.ingredient_id IN (7, 5)
GROUP BY r.name
HAVING COUNT(*) = 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. MySQL टाइमस्टैम्प केवल बनाने पर

  2. MySql उपयोगकर्ता की अनुमति देता है

  3. MySQL - स्ट्रिंग से सटीक शब्द खोजें

  4. मैं MySQL के ORDER BY RAND () फ़ंक्शन को कैसे अनुकूलित कर सकता हूं?

  5. डेटा को 1 टेबल से दूसरी टेबल में सेव नहीं कर सकता