SQL加入3个表和子查询的问题

时间:2017-12-13 20:17:27

标签: sqlplus oracle12c

参与的表格: 帐户,用户,服务,访问者

我希望在帐户表中包含所有记录,并且只包含其他表中存在的数据。

从帐户算起:5064

从以下查询返回的行:4915

select u.last_name, u.first_name, a.username, ll.mxlogin, si.servicename, a.islockedout
from account a
join service si on a.serviceid = si.serviceid
left outer join user u on u.loginid = a.username
left outer join(select max(loginattemptdate) as MxLogin, usernameattempted from accesshist where isloginsuccessful = 1
group by usernameattempted) ll
on a.username = ll.usernameattempted
where a.isenabled = 1
order by ll.mxlogin, u.last_name

我已经缩小了它,因为子查询连接是导致行数减少的部分,但我不确定如何纠正它。非常感谢任何见解!

1 个答案:

答案 0 :(得分:0)

您是否尝试过将第一个连接更改为左外连接?

 select u.last_name, u.first_name, a.username, ll.mxlogin, si.servicename, a.islockedout
    from account a
    left outer join service si on a.serviceid = si.serviceid