无法加入3个表,因为它们彼此无关

时间:2017-08-07 19:02:49

标签: sql sql-server

我需要一个代码来获取未提及一次的租户的姓名,联系方式,城市和房屋详细信息* / 现在我的个人资料包含 名字,姓氏,电子邮件,电话,[城市(家乡)],created_at,性别,referral_code

Tenace.history有 move_in_date,move_out_date,租金,bed_type,move_out_reason,house_id,PROFILE_ID

dbo.Referrals有 referrer_bonus_amount,referral_valid,VALID_FROM,valid_till,referrer_id

dbo.Houses有 house_type,bhk_details,bed_count,furnishing_type,beds_vacant

dbo.Addresses有     名称,描述,城市,pin码,house_id

dbo.Referrals有 referrer_bonus_amount,referral_valid,VALID_FROM,valid_till,referrer_id

现在我需要一种方法来加载配置文件ID与house id,并且只有它的可用位置是tenance_history和referal_id。但我无法将它们联系起来。 我想出的最好的代码是下面的一个,但有语法错误。

select dbo.Profiles.first_name +' '+ dbo.Profiles.last_name as full_name, dbo.Addresses.name,DBO.Addresses.city,dbo.Addresses.description, 
dbo.Houses.house_type, DBO.Houses.bhk_details, DBO.Houses.furnishing_type, dbo.Houses.bed_count, DBO.Houses.Beds_vacant,
dbo.Referrals.referrer_id
 from Addresses 
 inner join
 dbo.Houses, dbo.Profiles
 on
 dbo.Houses.house_id = dbo.Addresses.house_id
 inner join
 dbo.Referrals.referrer_id, dbo.Profiles.profile_id
 on 
dbo.Referrals.referrer_id=dbo.Profiles.profile_id=  
where dbo.Referrals.referrer_id != dbo.Profiles.profile_id

1 个答案:

答案 0 :(得分:0)

获取从未提及以下查询的租户有帮助。假设referrer_id和profile_id具有外键关系。

`SELECT *  ------ include required columns instead of *
FROM dbo.addresses a
JOIN dbo.houses h ON a.house_id = h.house_id
LEFT JOIN dbo.referrals r ON h.profile_id = r.referrer_id
WHERE r.referrer_id IS NULL`