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

मूल्य तुलना के लिए मैसकल क्वेरी

मेरा सुझाव है कि आपके पास एक "मास्टर" उत्पाद तालिका है, जो सभी उत्पादों को सूचीबद्ध करती है, भले ही वे सभी पर बेचे जाते हैं या नहीं साइटों, या सिर्फ एक। फिर उसमें से प्रत्येक वेबसाइट मूल्य निर्धारण तालिका में शामिल हों। उत्पाद के नाम पर मिलान करने का प्रयास करें। अपने सरलतम रूप में, क्वेरी इस तरह दिखेगी:

select
  p.*,
  t1.price as site1_price,
  t2.price as site2_price,
  t3.price as site3_price
from product p
left join website1 t1 on t1.name = p.name
left join website2 t2 on t2.name = p.name
left join website2 t3 on t3.name = p.name;

आपको ब्रांड और मॉडल में शामिल होने का प्रयास करना पड़ सकता है, अर्थात on t1.brand = p.brand and t1.model = p.model पर , या कुछ अन्य मानदंड यदि नाम अद्वितीय नहीं है।

यदि वे उत्पाद नहीं बेचते हैं तो साइट की कीमतें शून्य हो जाएंगी।

उत्पाद को शीघ्रता से भरने के लिए, आप इसे चला सकते हैं:

insert into product (name, brand, model, ...)
select name, brand, model, ... from website1
union 
select name, brand, model, ... from website2
union 
select name, brand, model, ... from website3;

FYI करें, UNION . का उपयोग (UNION ALL के बजाय) ) संघ के उत्पादन को केवल अनूठी पंक्तियों का उत्पादन करता है




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दो टेबल, सफेद एक से कई रिश्ते। डुप्लिकेट पंक्तियों के बिना मूल्यों में कैसे शामिल हों?

  2. पायथन ओडो एसक्यूएल अभिकथन त्रुटि:डेटाशैप रिकॉर्ड प्रकार होना चाहिए, 0 * {...} मिला

  3. 64 . से बड़े SET को स्टोर करने का सबसे अच्छा तरीका

  4. MySQL:किसी इंट फ़ील्ड के मान को टॉगल करने का सरल तरीका

  5. MySQL group_concat () केस स्टेटमेंट वैल्यू द्वारा ऑर्डर करना