我正在研究JSON api。我的目标是提高速度,并通过加入相关数据来实现最少量的查询。
我可以做joins
。但我对某些事感到困惑。如何连接多个返回n
个记录数的表?例如,假设我有以下表格:
- Users
- Addresses
- Orders
我希望在一次查询中使用数据库中的5
及其地址和订单。
加入Users
和Addresses
将返回用户拥有的所有Addresses
。每个Address
作为一行,包含Users
列。但是,当您添加另一个也可以返回n
结果的表时,数据库将如何返回该结果?
我希望这不会让人感到困惑。我努力用更好的话来说。
答案 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中的记录。