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

परिणामों के मर्ज किए गए सेट को वापस करने के लिए SQL

इसे रिलेशनल डिवीज़न से पूरा किया जा सकता है :

select r.order_id from (
  select 
    dividend.*  
  from your_table_or_query as dividend  -- assumes no duplicates in `dividend`; use `distinct` if there are any
  inner join divisor
  on dividend.value = divisor.value
) as r
group by r.order_id
having count(*) = (select count(*) from divisor);

परिणाम:

+----------+
| order_id |
+----------+
|     1236 |
|     1239 |
+----------+
2 rows in set (0.00 sec)

जहां आपकी क्वेरी your_table_or_query है और

select 260 as value from dual union select 264 as value from dual

divisor है ।

यह ऑर्डर आईडी 1236 और 1239 लौटाएगा; तब वे join यदि आप यही चाहते हैं तो उन ऑर्डर आईडी के साथ सभी पंक्तियों को प्राप्त करने के लिए मूल क्वेरी को संपादित करें।

इंसर्ट स्टेटमेंट के साथ पूरी क्वेरी:

create table divisor (value int);
insert into divisor values (260), (264);

create table your_table_or_query (value int, order_id int);
insert into your_table_or_query values (260, 1234), (260, 1235), (260, 1236), (264, 1236), (260, 1237), (260, 1238), (260, 1239), (264, 1239), (264, 1240), (260, 1241);


select y.* from (
  select r.order_id from (
    select
      dividend.*
    from your_table_or_query as dividend
    inner join divisor
      on dividend.value = divisor.value
  ) as r 
  group by r.order_id
  having count(*) = (select count(*) from divisor)
) as quotient
inner join your_table_or_query y
  on quotient.order_id = y.order_id;

परिणाम:

+-------+----------+
| value | order_id |
+-------+----------+
|   260 |     1236 |
|   264 |     1236 |
|   260 |     1239 |
|   264 |     1239 |
+-------+----------+
4 rows in set (0.00 sec)


  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. टैलेंड का उपयोग करके क्विकस्टार्ट डेटाबेस माइग्रेशन

  3. mariadb 10 में centos7 . पर ओपन-फाइल्स-लिमिट नहीं बढ़ा सकते

  4. PHP, MySQL का उपयोग करके चार्ट.जेएस डेटा सरणी। JSON सरणी से डेटा स्रोत को कैसे परिभाषित करें?

  5. MySQL से कैसेंड्रा में स्विच करना - पेशेवरों/विपक्ष?