【问题标题】:SQL Join Two Tables Remove DuplicatesSQL连接两个表删除重复
【发布时间】:2017-12-02 17:06:54
【问题描述】:

好的,我一直在搜索所有以前提出的问题,但仍然遇到问题。

我有两张桌子

表电影

mov_id
mov_name
actor_id

表演员

actor_id_2
actor_name

我想将两个表合并到一个列出的表中

  1. mov_id
  2. mov_name
  3. 演员名

我正在尝试使用 JOIN WHERE actor_id = actor_id_2,但我的代码包含重复相同的 actor_name 3 次的副本。

我尝试了多种方法,但每种方法都不成功。我不确定哪种方法是正确的方法。

【问题讨论】:

  • 我不明白,该示例没有显示重复项 - 每行的 M_Name 都不同,并且 M_ID 是唯一的。一个演员可以出演多部电影..
  • 是的。根据维基百科,伊德瑞斯·艾尔巴从 2017 年起出演了所有三部电影(以及《黑暗之塔》)。如果您想要每个演员一行,您可以按 actor_name 对结果进行 GROUP,并以某种方式连接 movie_id 和 movie_name。具体如何取决于数据库类型。

标签: sql oracle


【解决方案1】:

您可以使用内连接来连接表,以便选择在两个表中具有匹配值的记录,将您的查询写为

select distinct t1.mov_id, t1.mov_name, t2.actor_name from MOVIES t1 inner join ACTOR t2 on t1.actor_id=t2.actor_id_2;

【讨论】:

    【解决方案2】:

    我会尝试建立你的概念。

    您正在应用的是使用主键和外键的关系数据库。

    当您遇到上述情况时,您需要从多个表中检索数据并且它们是相关的,然后使用joins

    Join 有很多种,你可以在这个tutorial得到他们的详细信息和指导

    现在来到您的表格和数据。

    Select M.mov_id, M.mov_name, M.actor_name from Movies M
    inner join Actor A on M.actor_id = A.actor_id_2 
    

    注意:在on 关键字之后,您可以为连接放置多个条件,以根据您的要求获取最具体的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-02
      • 2017-06-15
      • 2016-07-09
      • 2020-08-11
      • 1970-01-01
      • 2020-10-10
      • 2015-02-23
      • 1970-01-01
      相关资源
      最近更新 更多