Mysql 如何根据条件在两个表之间进行选择

Mysql 如何根据条件在两个表之间进行选择,mysql,Mysql,假设我有“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;

假设我有“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是man-->使用userman B,如果不是,则使用userwoman B

我怎样才能做到这一点

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
或者,如果您需要选择多个列,并且不想执行更多的case语句

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