我正在尝试将多个表连接到一个非常大的表
SELECT * FROM
Person, Patient, vanster_implantat,
hoger_implantat, vanster_operationer,
hoger_operationer, vanster_processorpatient,
hoger_processorpatient, processor
这会产生大量重复值,因为彼此之间没有任何关联。我希望所有表都以某种方式通过所有表所具有的'nummer'列连接到'Patient'表。我试图将所有表格同时连接到“患者”表:
SELECT * FROM
Person, Patient, vanster_implantat, hoger_implantat, vanster_operationer, hoger_operationer, vanster_processorpatient, hoger_processorpatient WHERE
person.nummer = patient.nummer AND
patient.nummer = vanster_implantat.nummer AND
patient.nummer = hoger_implantat.nummer AND
patient.nummer = vanster_operationer.nummer AND
patient.nummer = hoger_operationer.nummer AND
patient.nummer = vanster_processorpatient.nummer AND
patient.nummer = hoger_processorpatient.nummer
但是这导致No Data,因为它要么连接到所有表,要么根本不显示任何数据。这是一个全有或全无的情况。我想要它显示它当前与其他表的连接,它可能是一个连接或更多。我希望你理解我的意思,感谢你的帮助,谢谢。
答案 0 :(得分:1)
尝试
select
*
from
patient
left join
person on person.nummer = patient.nummer
left join
vanster_implantat on vanster_implantat.nummer = patient.nummer
left join
hoger_implantat on hoger_implantat.nummer = patient.nummer
left join
vanster_operationer on vanster_operationer.nummer = patient.nummer
left join
hoger_operationer on hoger_operationer.nummer = patient.nummer
left join
vanster_processorpatient on vanster_processorpatient.nummer = patient.nummer
left join
hoger_processorpatient on hoger_processorpatient.nummer = patient.nummer;
这是一个左外连接,主驱动表为patient
。它基本上意味着如果其他表没有加入,那么它仍然可以。如果要确保该表中存在匹配的记录,可以删除某些联接上的left
。
答案 1 :(得分:0)
您基本上需要JOIN
表ON
表示Patient
的外键。
就像这样:
SELECT * FROM Patient as pa LEFT JOIN Person as pe ON pe.nummer = pa.nummer
请阅读不同的JOIN
条款,以确切了解您的需求,您还要查看GROUP BY
等条款。我在第二篇评论中为您在使用SQL之前学习了SQL的基础知识,通过跟踪&错误。