如何在SQL Query中停止多次显示多条记录

时间:2017-07-06 05:03:48

标签: mysql sql

以下是Complete SQL Fiddle

如您所见,来自recommendations表的记录多次显示。但是,如果我删除此行LEFT JOIN cast ON cast.cast_tmdb_id=tmdb_movies.tmdb_id ,则它们不会多次显示。所以这一行是主要问题。

我的SQL查询中没有使用强制转换表,只是为了简单起见。但我需要它。

是的,我需要group_concat在我的PHP code

中一起显示记录

我想这就是所需的全部信息。如果您需要更多信息或希望我再次解释,请告诉我。

编辑:亲爱的@Shadow,他将此建议标记为重复。如果我使用DISTINCT,则不会显示所有记录。因为2部电影可能的平均评分为7.5

1 个答案:

答案 0 :(得分:0)

你的问题不是很清楚。那是因为你没有显示出预期的结果。

在您的查询中,您正在选择一列推荐的电影标题,另一列则选择投票。但是,这些并不相关,因为您没有指定订单。因此,第一个推荐的电影可能会举行第五次投票。即使投票按电影排序,仍然难以阅读。

首先从理想的结果开始。然后才写下查询。

示例:

预期结果:

movie_title       | roles                          | recommendations
------------------+--------------------------------+------------------------
The Dark Knight   | Christian Bale (Bruce Wayne /  | The Dark Knight Rises (7.5),
                  | Batman), Michael Caine (Alfred | Batman Begins (7.5), Iron 
                  | Pennyworth), ...               | Man (7.3), ...

因此我们需要来自演员表的聚合(每部电影的所有角色)和推荐表中的聚合(每部电影的所有推荐)。首先进行聚合,然后加入结果:

library('xts')
XTS1 <- structure(c(12, 7, 7, 22, 24, 30, 26, 23, 27, 30), .indexCLASS = c("POSIXct", "POSIXt"), .indexTZ = "", tclass = c("POSIXct", "POSIXt"), tzone = "", class = c("xts", "zoo"), .CLASS = structure("double", class = "CLASS"), formattable = structure(list(formatter = "formatC", format = structure(list(format = "f", digits = 2), .Names = c("format", "digits")), preproc = "percent_preproc", postproc = "percent_postproc"), .Names = c("formatter", "format", "preproc", "postproc")), index = structure(c(1413981900, 1413982800, 1413983700, 1413984600, 1413985500, 1413986400, 1413987300, 1413988200, 1413989100, 1413990000), tzone = "", tclass = c("POSIXct", "POSIXt")), .Dim = c(10L, 1L))

#DESIRED OUTPUT      
                     [,1]   GetHighest(3)
2014-10-22 08:45:00   12              NA
2014-10-22 09:00:00    7              12
2014-10-22 09:15:00    7              12
2014-10-22 09:30:00   22              12
2014-10-22 09:45:00   24              22
2014-10-22 10:00:00   30              24
2014-10-22 10:15:00   26              30
2014-10-22 10:30:00   23              30
2014-10-22 10:45:00   27              30
2014-10-22 11:00:00   30              27

以下是rextester链接:http://rextester.com/FHA48503