Mysql 如何根据条件在两个表之间进行选择
假设我有“userBasic”、“userMan”、“userWoman”表 “userBasic”表的列名为“userNum”和“gender” 我试图根据userBasic表中的性别和userNum从userMan或userWoman中检索数据 简言之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;
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