【问题标题】:How to retrieve only desired no.of rows from join result in sql如何从sql中的连接结果中仅检索所需的行数
【发布时间】:2021-12-12 22:24:28
【问题描述】:

包含两列的表组:

id name
1 A
2 B
3 C
4 D

输出:两列(两个名称): ||| |:-:|:-:| |一个 |乙| |一个 | C | |乙| C | |乙| D | | C | D | | C |一个 |

我认为我们可以从

获得这种输出
select * 
from team t1 
join team t2 on t1.id <> t2.id;

但它为每个名称返回 3 行。我只需要为每个名称加上除自己的名称之外的任何其他名称(除了 A - A 、 B - B、 C - C、 D - D 之外)的两行

【问题讨论】:

    标签: sql join select


    【解决方案1】:

    试试这个

       select t1.id, t2.id from team t1 
      Cross   join team t2 on t1.id <> t2.id; 
    

    【讨论】:

    • 我已经尝试过交叉连接,但同样的问题。对于每个 id/name,我只需要两行,因为非 equi 连接会导致 3 行
    猜你喜欢
    • 2020-08-17
    • 2014-06-15
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2019-10-31
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多