0

假设我有 'userBasic'、'userMan'、'userWoman' 表。

'userBasic' 表有名为 'userNum' 和 'gender' 的列。

我正在尝试根据 userBasic 表中的性别和 userNum 从 userMan 或 userWoman 检索数据。

简单的说,

select A.gender, B.nickname from userBasic A, (userman or userwoman) B 
      where A.gender=? and B.userNum=A.userNum;

如果 A.gender 是男人 --> 使用 userman B,如果不是使用 userwoman B。

我怎样才能做到这一点?

4

1 回答 1

1
SELECT 
    ub.gender,
    CASE
        WHEN ub.gender = 'male' THEN um.nickname
        ELSE uw.nickname
    END as nickname
FROM userBasic as ub
LEFT JOIN userMan as um ON ub.userNum = um.userNum
LEFT JOIN userWoman as uw on ub.userNum = uw.userNum

或者如果您需要选择多个列并且不想做更多的案例陈述

SELECT 
    ub.gender, um.nickname
FROM userBasic as ub
INNER JOIN userMan as um ON ub.userNum = um.userNum
UNION ALL
SELECT 
    ub.gender, uw.nickname
FROM userBasic as ub
INNER JOIN userWoman as um ON ub.userNum = uw.userNum
于 2013-10-31T09:05:56.483 回答