MySQL Intersect 的替代方法
MySQL 資料庫缺少INTERSECT 操作,這是一個用於識別在兩個結果中找到的值的獨特函數套。儘管如此,還是有其他方法可以實現類似的結果。
方法1:使用DISTINCT 進行INNER JOIN
要使用INNER JOIN 模擬INTERSECT 操作,請依照下列步驟操作:
此方法確保僅傳回兩個表中都存在的唯一值。
方法2:WHERE ... IN 與DISTINCT
或者,您可以在WHERE ... IN 子句中使用帶有DISTINCT 關鍵字的子查詢來獲得相同的結果:
範例:
假設您有兩個表,table_a 和table_b,包含以下資料:
table_a | table_b |
---|---|
1, A | 1, B |
2, B | |
3, B |
要使用帶有DISTINCT 的INNER JOIN找出兩個表中都存在的值,您可以執行以下查詢:
SELECT DISTINCT value FROM table_a INNER JOIN table_b USING (value);
類似地,將WHERE ... IN 與DISTINCT 結合使用:
SELECT DISTINCT value FROM table_a WHERE (value) IN (SELECT DISTINCT value FROM table_b);
這兩個查詢都會傳回以下結果:
value |
---|
B |
以上是如何在MySQL中模擬INTERSECT操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!