我有两个选择请求。一个只能返回一行,而另一个可以返回直到5行,对于每个请求,它们之间都有一个联接。
我想要做的是将第二个选择中的行(一个可以包含5行)添加到第一个选择中。这样,我将只有一行包含所有信息。
例如,如果我的第一个选择具有5列,而第二个选择返回2个具有4列的行,那么我将只有一个具有13列的行(5 + 2 x 4)。或者,如果第二个选择返回3行,则我将有17列(5 + 3 x 4)。
我花了很多时间研究这个问题,但没有发现任何结果。
答案 0 :(得分:0)
当您将两个选择结果(第一个结果给一行,第二个结果给5行)连接在一起时,如果第一个结果集行列与第二个结果集行列匹配,那么您将有5行。
电影桌
----------+---------+
+ MovieId +MovieName+
----------+---------+
1 Ben Hur
----------+---------+
电影订单明细表
-----------+----------+------------+------------+
MovieId + Orderedby+ OrederedOn + ReturnedOn +
-----------+----------+------------+ -----------+
1 + Venkat + 2015/06/01 2015/06/02 +
1 + Raman + 2014/07/01 2014/07/02 +
1 + David + 2017/07/01 2017/07/02 +
1 + George + 2018/07/01 2018/07/02 +
-----------+----------+------------+--------------
当您加入Movie表(选择1)和Movie Order Details表(选择2)时,您将获得4行,因为它们与第一个选择的MovieId匹配。
SELECT M.MovieId, M.MovieName, d.Orderby, d.OrderedOn, d.ReturnedOn
FROM Movie AS M
JOIN MovieOrderDetails AS d
ON M.MovieId = d.MovieId
--------+-------------+----------+------------+------------+
MovieId + MovieName + Orderedby+ OrederedOn + ReturnedOn +
--------+-------------+----------+------------+ -----------+
1 + Ben Hur + Venkat + 2015/06/01 2015/06/02 +
1 + Ben Hur + Raman + 2014/07/01 2014/07/02 +
1 + Ben Hur + David + 2017/07/01 2017/07/02 +
1 + Ben Hur + George + 2018/07/01 2018/07/02 +
--------+-------------+----------+------------+--------------