这是一个简单的问题,我开始使用SQL,而且我遇到了很多问题.
我有TBL_SALES和TBL_CUSTOMERS.两者都可以通过字段CUSTOMER_ID加入.客户可能拥有CUSTOMER_ID且在TBL_CUSTOMERS上没有条目
我想在TBL_SALES上找到TBL_CUSTOMERS上没有条目的所有条目.
我认为这与之相反
SELECT UNIQUE TBL_SALES.CUSTOMER_ID, TBL_CUSTOMERS.CUSTOMER_ID
FROM TBL_SALES, TBL_CUSTOMERS
WHERE TBL_SALES.CUSTOMER_ID = TBL_CUSTOMERS.CUSTOMER_ID
Run Code Online (Sandbox Code Playgroud)
嗯......我可以使用SEEK和NOMATCH的VBA代码来做到这一点.但我知道它没有生产力.如果我尝试使用此代码,它不起作用:
SELECT UNIQUE TBL_SALES.CUSTOMER_ID, TBL_CUSTOMERS.CUSTOMER_ID
FROM TBL_SALES, TBL_CUSTOMERS
WHERE TBL_SALES.CUSTOMER_ID <> TBL_CUSTOMERS.CUSTOMER_ID
Run Code Online (Sandbox Code Playgroud)
我意识到SQL中必须有一个'SEEK'命令,但我很确定这是运行此查询的更智能的方法.
尝试
SELECT *
FROM TBL_SALES
WHERE NOT EXISTS
(SELECT * FROM TBL_CUSTOMERS
WHERE TBL_CUSTOMERS.CUSTOMER_ID = TBL_SALES.CUSTOMER_ID)
Run Code Online (Sandbox Code Playgroud)
也可以使用LEFT JOIN,它选择"左边"的所有记录,无论是否存在"右边"的现有记录.
SELECT *
FROM TBL_SALES LEFT JOIN TBL_CUSTOMERS
ON TBL_SALES.CUSTOMER_ID = TBL_CUSTOMERS.CUSTOMER_ID
WHERE TBL_CUSTOMERS.CUSTOMER_ID IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |