SQL JOIN与同一个表

L. *_*lor 6 sql

我试图在SQL中查询,我无法解决它.我有一张桌子tCliente:

在此输入图像描述

我想要做的是使用相同的表来查找位于同一城市的每对客户端.

我试着这样做:

SELECT DISTINCT c.codiClien, c.nombreClien, c1.codiClien, c1.nombreClien, c.ciudadClien
FROM tCliente c
INNER JOIN tCliente c1 ON c.ciudadClien = c1.ciudadClien
Run Code Online (Sandbox Code Playgroud)

得到这个:

在此输入图像描述

但我应该得到这个:

在此输入图像描述

我知道我必须过滤数据,但我尝试了很多东西,但我找不到解决方案.此外,我试图使用,GROUP BY但它是不可能的.我希望按分组,即这样的事情:

...
GROUP BY c.codiClien, c1.codiClien
Run Code Online (Sandbox Code Playgroud)

但是这样做我在查询中遇到错误.有人可以帮帮我吗?谢谢

注意: 在使用ONINNER JOIN,我想知道是否"可能"这样做或不应该这样做,因为通常的做法是做tb1.id = tb2.id

McN*_*ets 10

您必须在内部联接上排除自身.

SELECT c.codiClien, c.nombreClien, c1.codiClien, c1.nombreClien, c.ciudadClien
FROM tCliente c
INNER JOIN tCliente c1 
    ON c.ciudadClien = c1.ciudadClien
    AND c.codiClien < c1.codiClien;
Run Code Online (Sandbox Code Playgroud)