这些是我的表:
Customer Table
--------------
CUST_ID
SUPPLIER1
SUPPLIER2
Supplier Table
--------------
SUPPLIER_ID
USERID
User Table
----------
USER_ID
规则:
客户可以有多个供应商,但如果他们有客户,供应商必须在用户表中。
因为所有供应商都必须是用户,所以我需要找到用户表中缺少的所有已使用或分配的供应商。
这个查询让我得到所有不是用户的供应商
SELECT
U.*
FROM
USER U
LEFT JOIN
SUPPLIER S ON S.USER_ID = U.USER_ID
WHERE
S.USER_ID IS NULL
但是我如何获得所有不是用户的客户供应商?
我试过这个,但它似乎不正确:
SELECT
*
FROM
USER U
LEFT JOIN
(SELECT C.SUPPLIER1, S.USER_ID FROM CUSTOMER C, SUPPLIER S WHERE
C.SUPPLIER1 = S.SUPPLIER_ID AND C.SUPPLIER1 IS NOT NULL)
S2 ON S2.USER_ID = U.USER_ID
WHERE
S2.USER_ID IS NULL
谢谢