2

テーブルA:ユーザーID名

表B:accid userid accno

表c:loanid userid amt

こんにちは、私はテーブルAから顧客の名前を、テーブルBからaccnoを取得したいと思いますが、テーブルcには含まれていません。助けて

4

3 に答える 3

2
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)

このクエリはどうですか、これはうまくいくと思います

于 2012-12-14T10:57:07.450 に答える
1

試す:

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にレコードがないことを確認します。

于 2012-12-14T08:23:42.093 に答える
1

解決策 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
于 2012-12-14T08:25:28.050 に答える