我已經研究過,並且沒有找到在MS Access中運行INTERSECT和MINUS操作的方法。是否存在任何方式如何在MS Access中實現SQL INTERSECT和MINUS操作
回答
INTERSECT是內連接。 MINUS是一個外連接,您只能選擇其他表中不存在的記錄。
INTERSECT
select distinct
a.*
from
a
inner join b on a.id = b.id
減號
select distinct
a.*
from
a
left outer join b on a.id = b.id
where
b.id is null
如果要修改原來的問題,並張貼一些示例數據,然後一個例子可以說明。
編輯:忘了添加在不同的查詢。
它們通過JOIN完成。老式的方式:)
對於INTERSECT,您可以使用INNER JOIN。非常簡單。只需要使用GROUP BY或DISTINCT,如果你沒有進行純粹的一對一關係。否則,正如其他人所提到的那樣,您可以獲得比預期更多的結果。
對於MINUS,您可以使用LEFT JOIN並使用WHERE來限制它,這樣您只能從主表中取回與LEFT JOINed表不匹配的行。
簡單易行。
我也被拒絕了,但你的回答是正確的。 – LeppyR64 2008-12-03 15:40:29
不幸的是,MINUS在MS Access中不受支持 - 一種解決方法是創建三個查詢,一個帶有完整的數據集,一個用於拉取要過濾的行,第三個用於僅連接兩個表,拉取只存在於完整數據集中的記錄。
INTERSECT的情況也是如此,只不過你會通過內部連接來完成它,並且只返回兩個存在的記錄。
INTERSECT不是內部聯接。他們不同。 INNER JOIN會在INTERSECT不會的情況下給你重複的行。您可以通過以下方式獲得等效結果:
SELECT DISTINCT a.*
FROM a
INNER JOIN b
on a.PK = b.PK
請注意,PK必須是主鍵列或多列。如果在表上沒有PK(BAD!),你必須把它寫像這樣:
SELECT DISTINCT a.*
FROM a
INNER JOIN b
ON a.Col1 = b.Col1
AND a.Col2 = b.Col2
AND a.Col3 = b.Col3 ...
帶有負,你可以做同樣的事情,但有一個LEFT JOIN,併爲空WHERE條件檢查在表b的不可空列(最好是主鍵)之一上。
SELECT DISTINCT a.*
FROM a
LEFT JOIN b
on a.PK = b.PK
WHERE b.PK IS NULL
應該這樣做。
- 1. SQL MINUS操作者
- 2. Inrersect和minus操作
- 3. 如何在elasticsearch中執行MINUS操作
- 4. 爲MS-Access寫入困難查詢(無MINUS操作,3表連接)
- 5. 我如何在LIKE操作符中爲MS Access引入多個條件SQL
- 6. 如何使用sql查詢在ms access中執行連接操作?
- 7. 如何在MS Access DB中實現VLOOKUP功能?
- 8. 如何操作MS Excel的頁面從MS Access減免2003 VBA
- 9. MS Access Tag屬性 - 如何識別更新和插入操作?
- 10. 實現ROW_NUMBER/PARTITION BY在MS Access
- 11. INTERSECT和MINUS之間的區別是什麼
- 12. SQL Workbench:將Ms Access RDBMS遷移到SQL;取消操作
- 13. 在XQuery中獲取MINUS SQL操作符的功能
- 14. 在SQL中使用查詢執行MINUS操作
- 15. 如何在MS Access
- 16. 如何在C#中實現malloc操作#
- 17. 如何在MIPS中實現NOT操作?
- 18. 如何在Pascal中實現Matrix操作?
- 19. 如何在Python中實現鏈操作?
- 20. SQL的MS Access 2013
- 21. SQL Server和MS Access 2016
- 22. 在SQL Server中使用條件操作與INTERSECT結合使用
- 23. 如何在MS Access
- 24. 如何在MS Access中交互?
- 25. 在MySQL中實現SQL INTERSECT時的嵌套級別太高
- 26. SQL的MS Access -
- 27. 如何在SQL數據庫操作中實現參數別名?
- 28. 如何實現像「喜歡」在java中操作一個SQL?
- 29. 如何操作MS Access中的對象VBA
- 30. 通配符在MS Access SQL
美麗的答案:) – 2008-12-03 14:15:53
爲什麼這麼說?該邏輯產生與SQL標準INTERSECT和MINUS相同的結果。 – LeppyR64 2008-12-03 15:12:25
這正是我所說的,我被拒絕了。呃,好吧。 +1,因爲你花時間去實際給出語法示例。 – 2008-12-03 15:18:01