我有三個表USERS
,COMPANIES
,ORGANIZATIONS
根據列在一個表中的值獲得來自兩個不同的表
USERS
包含數據:USER_ID,USER_OWNER_ID,OWNER_TYPE,USER_NAME
COMPANIES
包含:COMPANY_ID ,COMPANY_NAME
ORGANIZATIONS
包含:的organization_ID,ORGANIZATION_NAME
我的要求是的,我必須得到COMPANIES.COMPANY_NAME
如果USERS.OWNER_TYPE
是20和應該得到的ORGANIZATIONS.ORGANIZATION_NAME
如果USERS.OWNER_TYPE
是30
所以,我用下面的查詢這裏
SELECT US.USER_NAME,
US.USER_OWNER_ID,
IF (
US.OWNER_TYPE=20, ORG.ORGANIZATION_NAME, CO.COMPANY_NAME
) AS NAME
FROM USERS US,
COMPANIES CO,
ORGANIZATIONS ORG
WHERE (US.OWNER_TYPE=20 AND US.USER_OWNER_ID=ORG.ORGANIZATION_ID)
OR
(US.OWNER_TYPE=30 AND US.USER_OWNER_ID=CO.COMPANY_ID)
問題是,我得到重複OWNER_TYPE = 30的記錄來自OWNERS表。
有人可以幫我看看這個查詢嗎?
** Downvoter **您是否在意解釋投票的結果? – peterm
這對我來說工作得很好......謝謝.. – user3066006