我试图在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
得到这个:
但我应该得到这个:
我知道我必须过滤数据,但我尝试了很多东西,但我找不到解决方案.此外,我试图使用,GROUP BY
但它是不可能的.我希望按对分组,即这样的事情:
... GROUP BY c.codiClien, c1.codiClien
但是这样做我在查询中遇到错误.有人可以帮帮我吗?谢谢
注意:
在使用ON
时INNER JOIN
,我想知道是否"可能"这样做或不应该这样做,因为通常的做法是做tb1.id = tb2.id
您必须在内部联接上排除自身.
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;