选择数据帮助

时间:2013-04-15 05:35:00

标签: sql

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

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

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是一个FK,指的是表Customer。 COMPNAME是指FX表格的FK。

租赁:

CUSTID COMPNAME   APTNUM

CUSTID是指客户表的FK。 COMPNAME是指表复合体的FK。 APTNUM是FK指的是公寓。

1 个答案:

答案 0 :(得分: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

如何展示其馆内没有租户的人

使用 NOT IN

以下查询会为我提供 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))