我想知道是否可以內部連接與另一個內部連接的內部連接。內部連接與另一個內部連接的內部連接
我有3個表的數據庫:
人
運動員
教練
每一位運動員或教練必須存在於百姓餐桌,但也有一些人誰是既不教練員或運動員。
我想要做的是找到一份在至少3種不同的運動中活躍(意思是玩法或教練)的人列表。活躍的定義是他們既是教練,運動員也是教練和運動員。
的人表將包括(ID,名,高度)的 的運動員表會(ID,運動) 的教練表會(編號,運動)
我創建了3個內部聯接,告訴我誰是教練和運動員,誰是教練,誰只是一名運動員。
這是通過內部連接完成的。
例如,
1)誰既是教練和運動員
select
person.id,
person.name,
coach.sport as 'Coaches and plays this sport'
from coach
inner join athlete
on coach.id = athlete.id
and coach.sport = athlete.sport
inner join person
on athlete.id = person.id
這帶來了大家誰雙方教練的名單,並播放相同的運動。
2)要找出誰是唯一的體育教練,我已經使用內部連接如下:
select
person.id,
person.name,
coach.sport as 'Coaches this sport'
from coach
inner join person
on coach.id = person.id
3)然後找出誰只是扮演體育,我已經得到了相同2),但只是調整了詞語
select
person.id,
person.name,
athlete.sport as 'Plays this sport'
from athlete
inner join person
on athlete.id = person.id
最終的結果是,現在我已經得到了: 1)人誰既發揮和教練相同的運動 2)人誰執教運動誰發揮體育 3)人
我想知道的是如何找到至少參加3種不同體育運動的教練的名單?我想不出來,因爲如果有人在表1中扮演和指導曲棍球運動,那麼我不想在表2和表3中計算它們。
我嘗試使用這3個內部聯接來製作一個大量的連接表,以便我可以選擇不同的值,但它不工作。
有沒有更簡單的方法去做這個而不做子查詢?
您是否收到任何錯誤? – nacho
你需要什麼實際輸出?你最初說你需要找到至少有3項運動活躍的人,但是你現有的查詢會產生額外的細節(例如*他們在這些運動中的活躍程度)。最終輸出中是否需要這些細節? –
請閱讀並在[mcve]上採取行動。 – philipxy