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

MySQL में इंटरसेक्ट करने का विकल्प

Microsoft SQL सर्वर का INTERSECT "किसी भी विशिष्ट मान को लौटाता है जो INTERSECT ऑपरेंड के बाएँ और दाएँ दोनों ओर क्वेरी द्वारा लौटाए जाते हैं" यह एक मानक INNER JOIN . से अलग है या WHERE EXISTS क्वेरी।

एसक्यूएल सर्वर

CREATE TABLE table_a (
    id INT PRIMARY KEY,
    value VARCHAR(255)
);

CREATE TABLE table_b (
    id INT PRIMARY KEY,
    value VARCHAR(255)
);

INSERT INTO table_a VALUES (1, 'A'), (2, 'B'), (3, 'B');
INSERT INTO table_b VALUES (1, 'B');

SELECT value FROM table_a
INTERSECT
SELECT value FROM table_b

value
-----
B

(1 rows affected)

MySQL

CREATE TABLE `table_a` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `value` varchar(255),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

CREATE TABLE `table_b` LIKE `table_a`;

INSERT INTO table_a VALUES (1, 'A'), (2, 'B'), (3, 'B');
INSERT INTO table_b VALUES (1, 'B');

SELECT value FROM table_a
INNER JOIN table_b
USING (value);

+-------+
| value |
+-------+
| B     |
| B     |
+-------+
2 rows in set (0.00 sec)

SELECT value FROM table_a
WHERE (value) IN
(SELECT value FROM table_b);

+-------+
| value |
+-------+
| B     |
| B     |
+-------+

इस विशेष प्रश्न के साथ, आईडी कॉलम शामिल है, इसलिए डुप्लिकेट मान वापस नहीं किए जाएंगे, लेकिन पूर्णता के लिए, यहां INNER JOIN का उपयोग करके एक MySQL विकल्प दिया गया है। और DISTINCT :

SELECT DISTINCT value FROM table_a
INNER JOIN table_b
USING (value);

+-------+
| value |
+-------+
| B     |
+-------+

और एक और उदाहरण WHERE ... IN . का उपयोग करते हुए और DISTINCT :

SELECT DISTINCT value FROM table_a
WHERE (value) IN
(SELECT value FROM table_b);

+-------+
| value |
+-------+
| B     |
+-------+


  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. SQLite INSERT - डुप्लीकेट कुंजी अद्यतन पर (UPSERT)

  4. प्रत्येक शामिल होने के लिए एक गिनती - अनुकूलन

  5. एक ही कॉलम पर कई WHERE शर्तों के साथ चयन करना