当前位置:  开发笔记 > 数据库 > 正文

SQL JOIN与同一个表

如何解决《SQLJOIN与同一个表》经验,为你挑选了1个好方法。

我试图在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

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

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



1> McNets..:

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

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;

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有