sql从同一个表中的一组值中选择不同的值

nhaq1z21  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(390)

我的查询结果如下表所示:

  1. value1 name
  2. ------ ------
  3. abc JOHN
  4. def JOHN
  5. mno JOHN
  6. mno JOHN
  7. abc JAMES
  8. abc JAMES
  9. def JAMES
  10. mno RICK

在上表中,值mno重复两次 JOHN 和价值 `` 重复两次 JAMES .
我使用的查询如下:

  1. SELECT tc.value, tr.name
  2. FROM table1 tc, table2 tr
  3. WHERE tc.id = tr.roll
  4. ORDER BY tr.name;

我希望得到的结果是,必须从每个名称中删除重复的值。结果应该是这样的:

  1. value1 name
  2. ------ ------
  3. abc JOHN
  4. def JOHN
  5. mno JOHN
  6. abc JAMES
  7. def JAMES
  8. mno RICK

我只想从每个名称中删除重复的值。我怎样才能做到这一点?

jqjz2hbq

jqjz2hbq1#

尝试使用如下所示的不同连接,也请使用如图所示的标准连接。

  1. SELECT DISTINCT tc.value, tr.name
  2. FROM table1 tc
  3. INNER JOIN table2 tr
  4. ON tc.id = tr.roll
  5. ORDER BY tr.name;
14ifxucb

14ifxucb2#

你可以用 DISTINCT 已标记的关键字:

  1. SELECT DISTINCT t1.value, t2.name
  2. FROM table1 t1
  3. JOIN table2 t2
  4. ON t1.id = t2.roll
  5. ORDER BY t2.name;

或者 GROUP BY t1.value, t2.name 条款,或者:

  1. SELECT t1.value, t2.name
  2. FROM table1 t1
  3. JOIN table2 t2
  4. ON t1.id = t2.roll
  5. GROUP BY t1.value, t2.name
  6. ORDER BY t2.name;

相关问题