2014-01-27 38 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