テーブルA:ユーザーID名
表B:accid userid accno
表c:loanid userid amt
こんにちは、私はテーブルAから顧客の名前を、テーブルBからaccnoを取得したいと思いますが、テーブルcには含まれていません。助けて
テーブルA:ユーザーID名
表B:accid userid accno
表c:loanid userid amt
こんにちは、私はテーブルAから顧客の名前を、テーブルBからaccnoを取得したいと思いますが、テーブルcには含まれていません。助けて
SELECT a.name, b.accno
FROM a inner join b on b.userid = a.userid
where a.userid not in (select distinct userid from c)
このクエリはどうですか、これはうまくいくと思います
試す:
SELECT a.name, b.accno
FROM tableA a
JOIN tableB b on a.userid = b.userid
LEFT JOIN tableC c on a.userid = c.userid
WHERE c.userid IS NULL
左結合を実行し、返された値がnullであることを確認し、テーブルaおよびbのレコードのテーブルcにレコードがないことを確認します。
解決策 1:
;with cte as
(Select a.name,b.accno,a.userid
from tableA a
join tableB b
on a.userid = b.userid)
select x.name,x.accno
from cte x
where x.userid not in (select userid from tableC)
解決策 2:
;with cte as
(Select a.name,b.accno,a.userid
from tableA a join tableB b
on a.userid = b.userid)
select x.name,x.accno
from cte x
where x.userid in(select c.userid
from cte c
except
select tc.userid
from tableC tc)
解決策 3
;with cte as
(Select a.name,b.accno,a.userid
from tableA a join tableB b
on a.userid = b.userid)
select x.name,x.accno
from cte x
left join tableC tc
on x.userid = tc.userid
where tc.userid is null