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