我有三個表,如t_zip5,t_dtv_cnty_eligibility,t_user_activity。 我將根據countyId從t_zip5表中提取所有郵編。SQL查詢返回無效行
這些zip代碼將在t_user_activity表的zip列中查找。如果zip匹配,我將不得不提取cuid和actvty列,否則我必須將這些列保留爲空或空的t_zip5表的郵政編碼。
我已經寫了下面的查詢:
select distinct tz.zip,td.DTV_eligible,tu.cuid,tu.actvty_date
from T_ZIP5 tz,T_DTV_CNTY_ELIGIBILITY td,T_USER_ACTIVITY tu
where tz.FIPS_CNTY='51001'
and tz.FIPS_CNTY=td.CNTY_FIPS
and tz.zip=tu.zip
此查詢僅提供匹配的郵政編碼行。即使不匹配,我也必須爲其他縣的郵政編碼提取行。
例如:51001縣有40個郵編。上述查詢導致我只有3行作爲與這3個拉鍊匹配的zip條目。
請幫我解決這個問題。
表結構:
desc t_zip5
Name Null Type
----------------- -------- ------------
ZIP NOT NULL VARCHAR2(5)
FIPS_CNTY VARCHAR2(5)
CITY_NAME NOT NULL VARCHAR2(50)
STATE NOT NULL VARCHAR2(2)
RATE_CENTER_NAME VARCHAR2(10)
RATE_CENTER_STATE VARCHAR2(2)
desc T_DTV_CNTY_ELIGIBILITY
Name Null Type
------------- -------- ------------
CNTY_FIPS NOT NULL VARCHAR2(5)
ZIP_CODE NOT NULL VARCHAR2(5)
DTV_ELIGIBLE CHAR(1)
USER_MODIFIED VARCHAR2(10)
CREATED_DATE DATE
MODIFIED_DATE DATE
desc t_user_activity
Name Null Type
----------- ---- -------------
ACTVTY_DATE DATE
ACTVTY_NAME VARCHAR2(20)
ACTVTY_DSCR VARCHAR2(200)
CUID VARCHAR2(10)
ZIP VARCHAR2(5)
輸出示例:
ZIP DTV_Eligible CUID MODIFIED_DATE
----------- ---- ----------------------
1111 Y xyz 05-02-2015
1111 N xyz 05-02-2015
2222 Y abc 02-02-2015
2222 N abc 02-02-2015
將JOIN替換爲左連接,看看會發生什麼! – jarlh 2015-02-06 10:17:13