Thread: UPDATE and SELECT result difference
Hi all, of course I'm too drunk, or simply I'm missing something, but I can't understand the difference beetwen the results of these 2 queries: targhettariodb=# UPDATE temp_principale targhettariodb-# SET cda_istat = acxx_aziende_istat.cda_istat , targhettariodb-# prg_istat = acxx_aziende_istat.prg_istat targhettariodb-# WHERE acxx_aziende_istat.cda_azienda = temp_principale.cda_azienda; UPDATE 1727 targhettariodb=# SELECT count(*) targhettariodb-# FROM acxx_aziende_istat,temp_principale targhettariodb-# WHERE acxx_aziende_istat.cda_azienda = temp_principale.cda_azienda; count ------- 1929 (1 row) why this difference in the number of rows? ( targhettariodb=# SELECT count(*) targhettariodb-# FROM acxx_aziende_istat, temp_principale targhettariodb-# WHERE targhettariodb-# acxx_aziende_istat.cda_azienda is null OR targhettariodb-# temp_principale.cda_azienda is null OR targhettariodb-# acxx_aziende_istat.cda_istat IS NULL OR targhettariodb-# acxx_aziende_istat.prg_istat IS NULL ; count ------- 0 (1 row) ) >psql (PostgreSQL) 7.1.3 >contains readline, history support >Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group >Portions Copyright (c) 1996 Regents of the University of California >Read the file COPYRIGHT or use the command \copyright to see the >usage and distribution terms. Thanks all. Regards. Enrico Mangano Net Software ________ NETHOUSE S.R.L. C.so Re Umberto I, 57 - 10128 Torino - Italy Tel. +39-011-581.581 - Fax +39-011-581.591 http://www.nethouse.it <http://www.nethouse.it/> - enrico.mangano@nethouse.it <mailto:enrico.mangano@nethouse.it>
Hello Enrico, It simply means that there are 202 duplicate rows in acxx_aziende_istat where acxx_aziende_istat.cda_azienda = temp_principale.cda_azienda. try : SELECT cda_azienda, COUNT(*) FROM acxx_aziende_istat WHERE EXISTS ( SELECT * FROM temp_principale WHERE acxx_aziende_istat.cda_azienda = temp_principale.cda_azienda) GROUP BY cda_azienda HAVING COUNT(*) > 1; jll Enrico Mangano wrote: > > Hi all, > > of course I'm too drunk, or simply I'm missing something, but > I can't understand the difference beetwen the results of these > 2 queries: > > targhettariodb=# UPDATE temp_principale > targhettariodb-# SET cda_istat = acxx_aziende_istat.cda_istat , > targhettariodb-# prg_istat = acxx_aziende_istat.prg_istat > targhettariodb-# WHERE acxx_aziende_istat.cda_azienda = > temp_principale.cda_azienda; > UPDATE 1727 > targhettariodb=# SELECT count(*) > targhettariodb-# FROM acxx_aziende_istat,temp_principale > targhettariodb-# WHERE acxx_aziende_istat.cda_azienda = > temp_principale.cda_azienda; > count > ------- > 1929 > (1 row) > > why this difference in the number of rows? > > ( > targhettariodb=# SELECT count(*) > targhettariodb-# FROM acxx_aziende_istat, temp_principale > targhettariodb-# WHERE > targhettariodb-# acxx_aziende_istat.cda_azienda is null OR > targhettariodb-# temp_principale.cda_azienda is null OR > targhettariodb-# acxx_aziende_istat.cda_istat IS NULL OR > targhettariodb-# acxx_aziende_istat.prg_istat IS NULL ; > count > ------- > 0