如何修复SQL联接

时间:2019-01-21 23:18:21

标签: sql sql-server join ssms inner-join

无法正确编写sql联接。我将加入三个表以确定计数。

表1-EmmaResponseOpens

[storecode]
[firstname]
[lastname] 
[px_or_ot_joindate] 
[datelastdined] 
[pxcardnumber] 
[birthdate] 
[fishbowl_join_date] 
[ot_signup] 
[last_input_source] 
[timestamp] 
[member_id] 
[member_since] 
[email_domain] 
[email_user] 
[email] 
[member_status_id] 
[mailing_id]

表2-EmmaCustomer

[Status] 
[Confirmed_Opt_In] 
[Account_ID] 
[StoreCode] 
[FirstName] 
[LastName] 
[Eclub_Member] 
[Email_Number] 
[Eclub] 
[Last_Input_Source] 
[Fishbowl_Join_Date] 
[Px_Or_Ot_Joindate] 
[Ot_Signup] 
[Member_ID] 
[Last_Modified_At] 
[Member_Status_ID] 
[Plaintext_Preferred] 
[Email_Error] 
[Member_Since] 
[Bounce_Count] 
[Deleted_At] 
[Email] 
[pxCardNumber]
[Member_Group_ID] 
[Preferred_Location_Henrys] 
[Preferred_Location_Palomino] 
[Preferred_Location_Kincaids] 
[Preferred_Location_Psc] 
[Preferred_Location_Stanfords] 
[portland_or] 
[bellevue_wa] 
[plano_tx] 
[denver_co] 
[pdx_airport_or] 
[seattle_wa] 
[st_paul] 
[oakland] 
[bloomington] 
[redondo_beach] 
[burlingame] 
[bellevue] 
[seattle] 
[los_angeles] 
[indianapolis] 
[san_francisco]    
[tigard] 
[portland_washington]
[walnut_creek] 
[portland_066] 
[portland_082] 
[hillsboro] 
[lake_oswego] 
[clackamas] 
[tukwila]

表3-EmmaGroups

[active_count] 
[deleted_at] 
[error_count] 
[optout_count] 
[group_type] 
[member_group_id] 
[purged_at] 
[account_id] 
[group_name] 
[date_time]

查询:

SELECT DISTINCT COUNT(Email)
FROM MyEmma.dbo.EmmaResponseOpens t1 
INNER JOIN EmmaCustomer t2 
ON t1.member_id = t2.member_id
INNER JOIN Groups t3
ON t3.member_group_id = t2.member_group_id

我希望返回EmmaResponseOpensEmmaCustomers中不匹配的内容(使用member_id),然后根据member_group_id进行过滤。

1 个答案:

答案 0 :(得分:1)

尝试一下:

SELECT DISTINCT COUNT(Email)
FROM MyEmma.dbo.EmmaResponseOpens t1 
RIGHT JOIN EmmaCustomer t2 
ON t1.member_id = t2.member_id
INNER JOIN Groups t3
ON t3.member_group_id = t2.member_group_id
WHERE t1.member_id IS NULL
相关问题