首頁 > 資料庫 > mysql教程 > 如何複製 MySQL 的 INTERSECT 運算子功能?

如何複製 MySQL 的 INTERSECT 運算子功能?

DDD
發布: 2024-12-25 09:07:32
原創
777 人瀏覽過

How to Replicate MySQL's INTERSECT Operator Functionality?

相當於 MySQL 的 INTERSECT 運算子

SQL INTERSECT 運算子用於識別並傳回查詢兩個部分中出現的符合值。但是,MySQL 本身不支援此運算符。

替代方法

要在 MySQL 中實作 INTERSECT 運算子的功能,可以採用幾種替代方法:

  • 內連接使用DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
INNER JOIN table_b ON table_a.column = table_b.column;
登入後複製
  • 其中 ... ... DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
WHERE table_a.column IN (SELECT table_b.column FROM table_b);
登入後複製

範例

考慮使用INTERSECT 運算子的下列查詢:

(select * from emovis_reporting where (id=3 and cut_name= '全プロセス' and cut_name='恐慌') ) 
intersect
( select * from emovis_reporting where (id=3) and ( cut_name='全プロセス' or cut_name='恐慌') )
登入後複製

此查詢從「emovis_reporting」表中檢索id 為3、cut_name為「全プロセsu」和「恐慌」的記錄。

MySQL等效

使用INNER JOIN 方法在MySQL 中實現此查詢:

SELECT DISTINCT *
FROM emovis_reporting AS a
INNER JOIN emovis_reporting AS b ON a.id = b.id
WHERE a.id = 3
  AND a.cut_name = '全プロセス'
  AND b.cut_name = '恐慌';
登入後複製

使用WHERE ... IN 和DISTINCT 方法 IN 和DISTINCT 方法 IN 和DISTINCT 方法 IN 和DISTINCT 方法:

SELECT DISTINCT *
FROM emovis_reporting
WHERE id = 3
  AND cut_name = '全プロセス'
  AND cut_name IN (SELECT cut_name FROM emovis_reporting WHERE cut_name = '恐慌');
登入後複製

以上是如何複製 MySQL 的 INTERSECT 運算子功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板