[英]MySQL query - join different tables based on a precondition (value retrieved from a different table)
I have following tables : 我有以下表格:
1. club_members (id, type, name)
2. male_members (name, age, location)
3. female_members (name, age, location)
4. senior_members (name, age, location)
I need to select 1 of these 3 tables based on type retrieved from 1st table. 我需要根据从第一个表中检索的类型选择这3个表中的一个。 like for type=male
, i will select from male_members and so on. 比如对于type=male
,我将从male_members中选择,依此类推。
so i want to write a query similar to 所以我想写一个类似的查询
select type, name , age , location from club_members , (2/3/4 table) where id=X ...
how to write such query. 怎么写这样的查询。
may be using if/else
or case
statements 可能正在使用if/else
或case
语句
Assuming Name as the link between tables. 假设Name为表之间的链接。
select
C.type as Type,
COALESCE(m.name, f.name, s.name) AS MemberName,
COALESCE(m.age, f.age, s.age) AS MemberAge,
COALESCE(m.location, f.location, s.location) AS Location
from club_members C
left join male_members M on C.name=M.name and C.type='Male'
left join female_members F on C.name=F.name and C.type='Female'
left join senior_members S on C.name=S.name and C.type='Senior'
where C.id='Your value'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.