我有2个表(clients和client_forms)。客户端总是单个实例(因为它与单个人有关,但他们每年填写一个表单(1 - 0.n)。我需要一个MySQL语句,为每个客户选择所有表单,但我不确定怎么做呢。它会使用某种嵌套查询吗?
答案 0 :(得分:2)
我建议您阅读JOIN
syntax。基本上你必须写
SELECT *
FROM clients
[LEFT OUTER] JOIN client_forms ON [put the join condition here]
我不确定你是否需要这个LEFT OUTER JOIN
(每个客户端总是至少返回一条记录),或INNER JOIN
(每个客户端和表单返回一条记录)
答案 1 :(得分:0)
select
*
from
clients
join clent_forms on client_forms.client_id=clients.client_id
将返回所有表单的所有客户端 - 假设两个表中都有client_id
列标识客户端。它不会返回没有表单的客户。
如果您还想要没有表单的客户,则需要outer
加入:
select
*
from
clients
left outer join clent_forms on client_forms.client_id=clients.client_id