我的SQl列出了连接中不匹配的行

时间:2012-02-11 21:48:13

标签: mysql

我是mysql的新手,我正在编写一个有3个表的程序 1. property_types(id,typename)
   数据:(1,房屋)(2,商店)(3,餐厅)...
2.属性(id,propertyname,typeid)
   数据:(1,房屋-1,1)(2,房屋-1,1)(3,商店-1,2)...
3. properties_rent(id,propertyid,amount,year)
   数据:(1,1,500.00,2010)(2,1,500.00,2011)(3,2,700.00,2010)......

我需要列出2012年没有支付租金的所有房产(房产类型,例如:商店),所以基本上如果房产(房屋1)已经支付了2010年的房租和房产。 2011年但不是2012年它应该被列出,并且还没有支付任何租金的房产(餐厅-1)(租金表中没有记录)......

提前致谢...

1 个答案:

答案 0 :(得分:0)

请试一试。

select p.id, p.propertyname, pt.typename
from properties p inner join property_types pt on (p.typeid = pt.id)
where not exists
(
   select 1
   from properties_rent
   where year = 2012
   and propertyid = p.id
)