簡體   English   中英

MySQL查詢 - 根據前提條件(從不同的表中檢索的值)連接不同的表

[英]MySQL query - join different tables based on a precondition (value retrieved from a different table)

我有以下表格:

1. club_members (id, type, name)
2. male_members (name, age, location)
3. female_members (name, age, location)
4. senior_members (name, age, location)

我需要根據從第一個表中檢索的類型選擇這3個表中的一個。 比如對於type=male ,我將從male_members中選擇,依此類推。

所以我想寫一個類似的查詢

select type, name , age , location from club_members , (2/3/4 table) where id=X ...

怎么寫這樣的查詢。

可能正在使用if/elsecase語句

假設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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM