我有3张桌子
租户:_id,Firstname..etc
租约:_id,tenant_id(FK)。和其他人
TenantMeters:_id,tenant_id(FK)和其他字段。
我想构建一个在两种情况下返回记录的查询:
(1)两个表(租赁和租户表)中有租户记录
(2)Tenancy表或TenantMeters中有租户记录
有什么建议吗?
我试过了
SELECT Tenants._id ,TenantMeters.Tenant_id, Tenancy.tenant_id from Tenancy left join Tenants on Tenants._id=Tenancy.tenant_id left join TenantMeters on Tenants._id=TenantMeters .Tenant_id where TenantMeters.Tenant_id=? Or Tenancy.tenant_id=?
但是如果我只有一个记录TenantMeters表,那就失败了。
答案 0 :(得分:1)
您的示例查询是从Tenancy
中选择的,因此如果该记录不存在,那么它就不会加入TenantMeters
。
如果Tenancy
或TenantMeters
中有租户,则会返回以下查询:
SELECT Tenants._id, TenantMeters.Tenant_id, Tenancy.tenant_id
FROM Tenants
LEFT JOIN TenantMeters ON TenantMeters.Tenant_id = Tenants._id
LEFT JOIN Tenancy ON Tenancy.Tenant_id = Tenants._id;