【问题标题】:SQL query (join, distinct)SQL 查询(连接,不同)
【发布时间】:2017-10-18 06:03:47
【问题描述】:

我对 SQL 语言非常陌生。我有两个表,比如 table1 和 table2,table1 有 ID 和 Name 列,table2 有 ID 和 Accounts 列。我需要编写一个查询,显示所有具有相应帐号的唯一名称。基本示例是:

table1         table2

ID Name        ID Accounts
1  foo         1  2
2  bar         2  10
3  baz         3  4
4  foo         4  2

已编辑:我自己制作了这张表。原始表格中没有任何输入。

【问题讨论】:

  • 编辑您的问题并显示示例数据和您想要的结果。
  • 这两个表之间没有关系,这些表不能连接。你在你的例子中遗漏了什么吗?
  • @MikeEason 不,这正是我在这里遇到的问题,这就是为什么我不能提供一个充分的例子——它们似乎都无关紧要
  • @Kirill 如果您需要更多关于 SQL 语言的帮助,您应该查看this 网站。我知道当我还是初学者时它对我有很大帮助。
  • @luisarcher 谢谢,这是我在学习 sql 时遇到的第一个站点。这个问题本身在各个方面似乎都非常不准确,所以我想我的编辑版本就是它应该看起来的样子。只需要删除重复项。

标签: mysql sql join


【解决方案1】:

这里的问题是“foo”与相应的重复帐户值重复,即使 ID 是不同的?使用多个列时,我通常不相信“不同”。虽然可能不必要地复杂,但我会这样做:

with allnames as (
select
t1.name, 
t2.accounts,
rank() over(partition by t1.name, t2.accounts order by rownum) DUPLICATE_RANK
from table1 t1
inner join table2 t2 on t1.ID = t2.ID
)
select
name, 
accounts
from allnames
where DUPLICATE_RANK = 1

这将为您提供所有唯一的名称-帐户组合。

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT table1.Name, table2.Accounts FROM table1 INNER JOIN table2 ON table1.ID=table2.ID;

    这会在结果表中为您提供NameAccounts 列。因为我们使用的是INNER JOIN,所以我们只能获取两个表中具有匹配值的记录。

    你可以阅读更多关于JOINhere的信息。

    【讨论】:

      【解决方案3】:

      mysql 加入查询将是:-

      select a.Id,a.Name,b.Id,b.Accounts from table1 a ,table2 where a.Id=b.Id
      

      加入步骤1:- 从两个表中选择字段名称。

      加入 step2:- 比较基础和公共字段名称,这将 比较两个表中的数据。

      a.Id=b.Id 将比较两个表中的 Id。

      【讨论】:

        【解决方案4】:

        您需要选择left joindistinct。所以,

        SELECT DISTINCT  A.Name
                         ,B.Account
             FROM        TableA A
             INNER JOIN  TableB B
                         ON A.ID = B.ID
        

        基本上,它的作用是使用TableATableB commun ID 并创建现在包含IDNameaccount number 的行(您可以通过更改由* 选择的列)。 然后,distinct 删除重复行,这就是您要查找的内容。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-04
          相关资源
          最近更新 更多