如何从另一个选择请求中的选择请求中添加多行

时间:2018-07-25 15:03:00

标签: sql

我有两个选择请求。一个只能返回一行,而另一个可以返回直到5行,对于每个请求,它们之间都有一个联接。

我想要做的是将第二个选择中的行(一个可以包含5行)添加到第一个选择中。这样,我将只有一行包含所有信息。

例如,如果我的第一个选择具有5列,而第二个选择返回2个具有4列的行,那么我将只有一个具有13列的行(5 + 2 x 4)。或者,如果第二个选择返回3行,则我将有17列(5 + 3 x 4)。

我花了很多时间研究这个问题,但没有发现任何结果。

1 个答案:

答案 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 +
--------+-------------+----------+------------+--------------