我需要选择拥有最多未被潜在买家查看的房产的业主。
选择'propertyforrent.ownerno'的最佳方式是'propertyno IS NULL'的数量最多。
此:
SELECT PropertyForRent.ownerno
FROM PropertyForRent propertyforrent, Client client, Viewing viewing
WHERE client.preftype=propertyforrent.type
AND client.clientno=viewing.clientno
AND viewing.propertyno IS NULL
ORDER BY count(*)
LIMIT 1
或者这个:
SELECT PropertyForRent.ownerno
FROM PropertyForRent propertyforrent, Client client, Viewing viewing
WHERE client.preftype=propertyforrent.type
AND client.clientno=viewing.clientno
AND MAX(COUNT(viewing.propertyno IS NULL)
谢谢!
答案 0 :(得分:1)
我们在这里使用LEFT JOIN,以便返回租赁的所有属性 并且只有那些有相关观看的人。
SELECT PFR.ownerno, count(Distinct PFR.PropertyNo) Count_of_Unviewed_Properties
FROM PropertyForRent PFR
LEFT JOIN viewing V
on PFR.PropertyNo = V.PropertyNo
WHERE V.propertyno IS NULL
ORDER BY count(Distinct PFR.PropertyNo) Desc
LIMIT 1
然后我们得到一个不同的PFR.PropertyNo的计数,其中没有相关的查看,按此计数desc排序并限制为1个结果(除非有关系)将是拥有最多属性的所有者没有观看。
做出的假设: