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

प्रासंगिक मूल्यों को खोए बिना दो तालिकाओं में शामिल हों

मुझे लगता है कि आप इसे ढूंढ रहे हैं:

select distinct *
from (SELECT date,
             if(group_concat(distinct cust_price), from_product_id, null)as from_product_id,
             if(group_concat(distinct comp_price), to_product_id, null)  as to_product_id,
             group_concat(distinct cust_price)                           as cust_price,
             group_concat(distinct comp_price)                           as comp_price
      FROM (select cust_hist.date,matches.from_product_id,
                   matches.to_product_id,cust_hist.price cust_price,
                   comp_hist.price                       comp_price
            from tmp_match matches
                   inner join tmp_price_history cust_hist on matches.from_product_id = cust_hist.product_id
                   inner join tmp_price_history comp_hist on matches.to_product_id = comp_hist.product_id
            WHERE comp_hist.date = cust_hist.date
            union
            select comp_hist.date,matches.from_product_id,
                   matches.to_product_id,null as cust_price,
                   comp_hist.price               comp_price
            from tmp_price_history comp_hist
                   join tmp_match matches
                     on matches.to_product_id = comp_hist.product_id # and matches.from_product_id is null

            union
            select cust_hist.date,matches.from_product_id,
                   matches.to_product_id,
                   cust_hist.price cust_price,
                   null            comp_price
            from tmp_price_history cust_hist
                   join tmp_match matches
                     on matches.from_product_id = cust_hist.product_id # and matches.to_product_id is null

            order by DATE, from_product_id, to_product_id, cust_price, comp_price) as u
      group by date,from_product_id,to_product_id) g

sql स्निपेट के बारे में आपका विचार बहुत अच्छा था!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक PHP सरणी में एक MySQL तालिका में मान कैसे सम्मिलित करें?

  2. mysql:'स्ट्रिंग' की तुलना 0 से क्यों करना सही है?

  3. php ब्राउज़र के भीतर mysql को पुनरारंभ करें, अनुमतियाँ जारी?

  4. सीमा को अनुक्रमित करें और क्वेरी में गलत प्लेसमेंट को ऑफ़सेट करें

  5. एक मान घटाकर एक कॉलम अपडेट करें