我有2个表(客户端和client_forms)。客户端总是一个实例(因为它涉及到一个人,但他们每年填写一个表单(1 - 0.n)。我需要一个MySQL语句为每个客户端选择所有表单,但我不确定如何做到这一点。它会使用某种嵌套查询的?从一个表中选择1条记录,从另一个表中选择0.n
0
A
回答
2
我建议你读入JOIN
syntax。从本质上讲,你得写
SELECT *
FROM clients
[LEFT OUTER] JOIN client_forms ON [put the join condition here]
我不知道,如果你需要这成为LEFT OUTER JOIN
(总是每个客户端至少返回一条记录)或INNER JOIN
(每个客户端和表单返回一条记录)
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
相关问题
- 1. 从一个表中选择记录
- 2. 根据条件从另一个表中选择特定记录
- 3. 从另一个表比较一个字段中选择记录
- 4. 从不在另一个表中的表中选择记录
- 5. 从表中选择记录,这不另一个表
- 6. 根据从另一个表中选择的结果从一个表中选择
- 7. 根据另一个表的列值从表中选择一条记录
- 8. 从另一个表中的列中选择记录等项目
- 9. 根据表B记录从一个表中选择记录
- 10. 如何从一个表中存在另一个表中选择记录
- 11. SQL Server从另一个表中的一个表中选择最高记录
- 12. 从另一个表中选择不在另一个表中
- 13. 选择所有记录从一个表,具体的记录从另一个
- 14. 从表格中选择最多n条记录,每组最多一条记录
- 15. 从同一表格中的每个类别中选择前n条记录
- 16. 从另一个表中选择值
- 17. SQLite从一个表或从另一个表中选择
- 18. 从一个表中选择数据与另一个条件
- 19. 从一个表中选择计数,从另一个列中选择计数ORACLE
- 20. SQL:从另一个表中选择对话GROUP BY与最后一条记录
- 21. 从2表中选择唯一记录
- 22. 如何根据一对多关系选择记录并从一个表中不选择另一个表?
- 23. MySQL从表1中选择一行,从表3中选择几个
- 24. 从表中选择多条记录
- 25. 从一个表中选择并插入另一个表中
- 26. 从2个表中选择记录
- 27. 从两个表中选择一个表
- 28. 从一个表中选择所有行,从另一个表中选择每个行的一个特定值
- 29. LINQ,从一个表中选择一个项目,从另一个表中选择多个项目
- 30. 从一个表中选择所有字段,并从mysql中的另一个表中选择一个字段
哪种类型的加盟使得1-0.n加入? –
LEFT OUTER JOIN,正如Lukas在他的询问中提出的那样。 –
您可能想要使用'LEFT OUTER JOIN',因为您可能总是希望每个客户端至少有一个结果记录。您可以在手册中找到更多信息 –