Mysql 从一个表中选择1条记录,从另一个表中选择0.n
我有两张表(客户和客户表格)。客户端总是一个实例(因为它涉及一个人,但他们每年填写一个表单(1-0.n)。我需要一个MySQL语句,为每个客户端选择所有表单,但我不确定如何执行。它会使用某种嵌套查询吗?我建议您阅读。基本上,您必须编写Mysql 从一个表中选择1条记录,从另一个表中选择0.n,mysql,sql,database,database-design,Mysql,Sql,Database,Database Design,我有两张表(客户和客户表格)。客户端总是一个实例(因为它涉及一个人,但他们每年填写一个表单(1-0.n)。我需要一个MySQL语句,为每个客户端选择所有表单,但我不确定如何执行。它会使用某种嵌套查询吗?我建议您阅读。基本上,您必须编写 SELECT * FROM clients [LEFT OUTER] JOIN client_forms ON [put the join condition here] 我不确定您是否需要将其作为左外部联接(始终为每个客户端至少返回一条记录)或内部联接(为每个
SELECT *
FROM clients
[LEFT OUTER] JOIN client_forms ON [put the join condition here]
我不确定您是否需要将其作为左外部联接
(始终为每个客户端至少返回一条记录)或内部联接
(为每个客户端和表单返回一条记录)
将返回所有客户端及其所有表单-假设两个表中都有一个标识客户端的client\u id
列。它不会返回没有表单的客户端
如果您还想要没有表单的客户端,则需要一个outer
join:
select
*
from
clients
left outer join clent_forms on client_forms.client_id=clients.client_id
哪种类型的联接使1-0.n联接?正如Lukas在他的查询中所说的,左外部联接。您可能希望使用
左外部联接
,因为您可能总是希望每个客户端至少有一个结果记录。您可以在手册中找到更多信息
select
*
from
clients
left outer join clent_forms on client_forms.client_id=clients.client_id