On my postgres database:
When i do
SELECT* FROM ETIQUETTES WHERE DO_PIECE='BL7591'
I have
...|do_piece|ar_ref |...
---------------------------
...|BL7591 |40L.PA.NAT|...
---------------------------
...|BL7591 |37LL.POM. |...
When i do
SELECT* FROM F_DOCLIGNE WHERE DO_PIECE='BL7591'
I have
...|do_piece|ar_ref |...
---------------------------
...|BL7591 |46L-E.PA.N|...
---------------------------
...|BL7591 |37LL.POM. |...
then when i do my request with IN
SELECT* FROM ETIQUETTES AS a WHERE DO_PIECE='BL7591' AND a.AR_REF IN (SELECT AR_REF FROM F_DOCLIGNE WHERE DO_PIECE='BL7591')
i have has expected
...|do_piece|ar_ref |...
---------------------------
...|BL7591 |37LL.POM. |...
but when i do my request with NOT IN
SELECT* FROM ETIQUETTES AS a WHERE DO_PIECE='BL7591' AND a.AR_REF NOT IN (SELECT AR_REF FROM F_DOCLIGNE WHERE DO_PIECE='BL7591')
i have nothing
...|do_piece|ar_ref |...
---------------------------
instead of
...|do_piece|ar_ref |...
---------------------------
...|BL7591 |40L.PA.NAT|...
I have tried with NOT EXIST or LEFT JOIN / NULL but the result is always the same... I dont't understand why and how ta have the good result... Can you help me to understand my mistake please?