首頁 > 資料庫 > mysql教程 > 如何複製 MySQL 的「INTERSECT」功能?

如何複製 MySQL 的「INTERSECT」功能?

Linda Hamilton
發布: 2024-12-22 12:58:36
原創
813 人瀏覽過

How Can I Replicate MySQL's `INTERSECT` Functionality?

找出MySQL 的Intersect 的等價項

在SQL 中,INTERSECT 運算子擷取出現在兩個指定查詢中的不同值。然而,MySQL 本身並不支援 INTERSECT。

MySQL 中的替代方案

要在MySQL 中得到類似的結果,可以使用:

  • INNER JOIN: 兩個表之間的每列值匹配,但會出現重複項返回。
  • WHERE ... IN: 選擇第一個表中也存在於第二個表中的不同值。

範例

考慮另一個使用以下方法的資料庫管理系統中的以下查詢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='恐慌') )
登入後複製

使用INNER JOIN 的MySQL替代方案:

SELECT DISTINCT * 
FROM emovis_reporting e1
INNER JOIN emovis_reporting e2 
ON (e1.id = e2.id) AND (e1.cut_name = e2.cut_name)
WHERE e1.id = 3 AND (e1.cut_name = '全プロセス' OR e1.cut_name = '恐慌');
登入後複製

使用WHERE ... IN 的MySQL 替代方案:

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

這些MyMy指定的條件的不同值子查詢。但是,需要注意的是,此特定查詢中涉及 id 列,這將防止傳回重複項。對於沒有唯一識別碼的查詢,可能需要在外部查詢中使用 DISTINCT 以確保結果唯一。

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

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