多表连接 去重

来源:互联网 发布:剑三喵哥可爱捏脸数据 编辑:程序博客网 时间:2024/05/16 07:32

如题:单表去重我们可能都会想到distinct


多表连接,只有在查询的所有字段都重复的情况下,才去掉重复的行。那么我们可以采用取各个表的最大主键去重


如下:

SELECT DISTINCT A.NO ,B.NAME,C.ACTION

FROM TBL_A A,TBL_B B,TBL_C C

WHERE 

B.ID = (SELECT MAX(ID) FROM TBL_B WHERE A_ID = A.ID)

AND  C.ID = (SELECT MAX(ID) FROM TBL_C WHERE A_ID = A.ID)

AND .......


这样只取出各个表中的A_ID字段等于A.ID的那些行;然后取ID值最大(或者最小)的即可,因为去重去的是A.ID

原创粉丝点击