2013-04-15 108 views
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是一個FK參考表客戶。 COMPNAME是一個FK,指的是表Complex。

租賃:

CUSTID COMPNAME APTNUM 

CUSTID是FK參考表客戶。 COMPNAME是一個FK,指的是表Complex。 APTNUM是一個FK指的是餐桌公寓。

+0

@Luv我不知道我知道你需要什麼。你的意思是PK和FK,以及有哪些表或者究竟是什麼? –

+0

@Luv查詢看起來不適合我。將其更改爲非空,將產生與上述相同的結果。我要看看我的原始查詢設計是否足夠。 –

+0

請提供上述**表**的**欄目名稱**。我會給你完美的查詢。 **:)** – Luv

回答

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)) 
+0

此查詢確實正確地顯示空配合物。這對我來說真的是一個開始的項目。那麼,我將如何正確嵌套這個查詢? –

+0

我沒有得到**的聲明**即***我將如何正確嵌套此查詢?*** – Luv

+0

我的意思是,我將如何使用IN命令將您的代碼放入類似於我的聲明(顯示以上)。 –