连接多个返回n个结果的表

时间:2015-03-04 11:35:23

标签: mysql sql

我正在研究JSON api。我的目标是提高速度,并通过加入相关数据来实现最少量的查询。

我可以做joins。但我对某些事感到困惑。如何连接多个返回n个记录数的表?例如,假设我有以下表格:

- Users
- Addresses
- Orders

我希望在一次查询中使用数据库中的5及其地址和订单。

加入UsersAddresses将返回用户拥有的所有Addresses。每个Address作为一行,包含Users列。但是,当您添加另一个也可以返回n结果的表时,数据库将如何返回该结果?

我希望这不会让人感到困惑。我努力用更好的话来说。

1 个答案:

答案 0 :(得分:0)

如果从表A到表B ON A.UserID = B.UserID进行JOIN,并且B.UserID不是唯一的,则返回与B指令一样多的行,并且从A中选择的字段是重复的。

举一个例子,如果你这样做:

SELECT a.Name, B.Adress FROM users A INNER JOIN adresses B ON A.UserID = B.UserID

并且地址包含3行ID 1(让我们称他为Max),然后输出为:

Max | 123 Fake St.
Max | 456 Real St.
Max | 789 Imaginary St.

如果添加第三个表,则同样适用。对于表C中的每个匹配,将复制表A和表B中的记录。