2014-01-27 72 views
-1

開始表如何查詢mysql中的多個表?

knowledge_base

knowledge_id 
sub_body_part_id 
symptom 
disease 
specialization_id 
gender 
age 
last_update 

main_body_part

main_body_part_id 
main_body_part 
last_update 

sub_body_part

sub_body_part_id 
sub_body_part 
last_update 

專業化

specialization_id 
specialization 
last_update 

sub_body_part_has_main_body_part

sub_body_part_id 
main_body_part_id 

茶几

這是我的查詢。這似乎是正確的,但我沒有得到main_body_part表,我不知道如何查詢它。對不起,我是初學者這種情況。只要給我同樣的解決方案,我很感激。 :)

SELECT sbp.sub_body_part, s.specialization, k.symptom, k.disease, k.gender, k.age 
from knowledge_base k 
left join sub_body_part sbp on sbp.sub_body_part_id = k.sub_body_part_id 
left join specialization s on s.specialization_id = k.specialization_id 

這是例子:

  Main body | Sub body | Disease | symptom | specialization | gender | age 


      Head   Eyes  Stroke  Confusion  Neurology  Both  All 
+3

嗯,你已經成功地加入三張桌子在一起...你爲什麼不嘗試重複這個過程來加入第四個? :S – eggyal

+0

看起來您沒有任何有意義的字段可以加入第四個表中...... sub_body_part表是否有另一個字段使用字段main_body_part_id引用回main_body_part表?數據庫中是否有另外一個映射表,它具有兩個字段main_body_part_id和sub_body_part_id? –

+0

-1。前幾天你剛剛問了一個類似這樣的問題。查看你在那裏得到的信息,在網上做一些研究,並學習如何編寫連接。 – Dan

回答

0

現在你已經從子主添加的映射表,試試這個:

SELECT mbp.main_body_part, sbp.sub_body_part, s.specialization, k.symptom, k.disease, k.gender, k.age 
from knowledge_base k 
left join sub_body_part sbp on sbp.sub_body_part_id = k.sub_body_part_id 
left join sub_body_part_has_main_body_part s2m on s2m.sub_body_part_id = sbp.sub_body_part_id 
left join main_body_part mbp on mbp.main_body_part_id = s2m.main_body_part_id 
left join specialization s on s.specialization_id = k.specialization_id