2014-12-22 4 views
-1

У меня есть 3 таблицыSQLite осталось присоединиться с тремя столами

Арендаторы: _ID, Firstname..etc

Tenancy: _id, tenant_id (FK). и другие

TenantMeters: _id, tenant_id (FK) и другие поля.

Я хочу построить запрос, который возвращает записи в двух случаях:

(1) Существует запись для арендатора в обеих таблицах (Сдача в аренду и TenantMeters)

(2) Существует запись для арендатора либо в таблице аренды, либо в 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.

ответ

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

спасибо так много! – user3079559

Смежные вопросы