多表连接 去重
如题:单表去重我们可能都会想到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