これらは私のテーブルです:
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
ありがとう