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

दो बाएं जुड़ने से मुझे MySQL के साथ असत्य डेटा (डबल डेटा?) मिलता है

समस्या यह है कि product_reviews और ऑर्डर तालिका में प्रति उत्पाद आईडी एक पंक्ति से अधिक हो सकती है। इसे ठीक करने का एक तरीका सबक्वेरी का उपयोग करना है:

SELECT `products`.*, 
  o.revenue,
  o.qty, 
  ROUND(avg_stars) as avg_stars 
FROM `products` 
LEFT JOIN
(
  select `product_id`, 
    sum(total_count) revenue,
    sum(quantity) qty
  from `orders`
  where `status` in ('delivered', 'new')
  group by `product_id`
) o
  ON `products`.`id` = o.`product_id`
LEFT JOIN
(
  select product_id, avg(stars) avg_stars
  from product_reviews
  group by product_id
) pr
    ON (products.id = pr.product_id)
ORDER BY products.ID DESC
LIMIT 10
OFFSET 0


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. किसी अन्य तालिका में MAX पंक्ति के साथ पंक्ति में शामिल हों?

  2. async और नोड js . में MySQL कॉल पर प्रतीक्षा करें

  3. MySQL लेनदेन का ठीक से उपयोग कैसे करें

  4. json_encode running चलाने के बाद \r\n (न्यूलाइन कैरेक्टर) को बदलना

  5. utf-8 बनाम latin1