0

我正在尝试显示两组数据。第一组显示了拥有租户的综合体的人。第二组显示拥有没有任何租户的综合体的人。

这是复杂名称的完整列表:

COMPN
-----
CM700
CM350
CM300
CM600
CM900
CM200
CM100

我想出了如何过滤掉那些目前有租赁协议的人。我使用了以下命令。

    SELECT DISTINCT customer.custlname,
                customer.custfname
FROM customer,
     own,
     rental
WHERE own.custid = customer.custid
  AND rental.compname = own.compname;

然后我得到以下结果:

CUSTLNAME  CUSTFNAME
---------- ----------
Pearson    Robert
Garnet     Kylie
Agassi     Pamela

这对应于这些值:

COMPN
-----
CM350
CM900
CM200

我现在正试图弄清楚如何展示在他们的建筑群中没有租户的人。我不完全确定如何解决这个问题。我已经搞砸了一段时间,我不太清楚要使用的正确操作程序。

谢谢

关于表的附加信息:

顾客

CUSTID CUSTLNAME  CUSTFNAME  BDATE     S MGR

CUSTID 是 PK。

自己的:

CUSTID COMPNAME

CUSTID 是一个引用表 Customer 的 FK。COMPNAME 是一个引用表 Complex 的 FK。

出租:

CUSTID COMPNAME   APTNUM

CUSTID 是引用表 Customer 的 FK。COMPNAME 是一个引用表 Complex 的 FK。APTNUM 是一个 FK,指的是 table 公寓。

4

1 回答 1

1

目前的信息

select distinct customer.custlname, customer.custfname
from customer
left join own on own.custid = customer.custid
inner join rental on rental.compname = own.compname
where own.custid is null

编辑:1

如何显示在他们的综合体中没有租户的人

使用不在

以下查询将为我提供没有租户的COMPNAME

select Complex.COMPNAME
from Complex,
Where COMPNAME NOT IN
(select COMPNAME
from rental)

编辑2:

根据OP 愿望清单

SELECT DISTINCT customer.custlname,
                customer.custfname
FROM customer,
     own,
     rental
WHERE own.custid = customer.custid
AND rental.compname = own.compname
AND rental.compname in (select Complex.COMPNAME
                        from Complex,
                        Where COMPNAME NOT IN
                        (select COMPNAME
                        from rental))
于 2013-04-15T05:45:06.780 回答