
DROP table client;
\i data_outer_join.sql
/*
On veux contacter tous les clients, quelque soit le mode de contact, dans le  cadre d'une campagne publicitaire. 
Une reponse contenant tous les clients, meme ceux qui n'ont pas de telephone, d'e-mail ou d'adresse est donc souhaitee.
*/


SELECT *
FROM Client 
   FULL OUTER JOIN telephone 
        USING(CLI_ID) 
   FULL OUTER JOIN email  
        USING(CLI_ID) 
   FULL OUTER JOIN adresse  
        USING(CLI_ID) ;

/*
 
 cli_id |   cli_nom    |        tel         |  eml_adresse   |      adr_ville       
--------+--------------+--------------------+----------------+----------------------
      1 | Dupont       | 05-59-45-72-42     | dupe@free.fr   | 
      1 | Dupont       | 05-59-45-72-42     | dd@hotmail.com | 
      2 |              |                    | mm@free.fr     | Nice                
      2 |              |                    | mm@free.fr     | Paris               
      3 | Durand       | 01-44-28-52-50     |                | 
      3 | Durand       | 06-54-18-51-90     |                | 
      4 |              |                    |                | Pau                 
(7 rows)
*/



 SELECT cli_id, cli_nom, tel, eml_adresse, adr_ville 
   FROM Client 
   LEFT OUTER  JOIN telephone  
        USING(CLI_ID) 
   LEFT OUTER JOIN email  
        USING(CLI_ID) 
   LEFT  OUTER JOIN adresse  
        USING(CLI_ID) ;

/*
cli_id |   cli_nom    |        tel         |  eml_adresse   |      adr_ville       
--------+--------------+--------------------+----------------+----------------------
      1 | Dupont       | 05-59-45-72-42     | dupe@free.fr   | 
      1 | Dupont       | 05-59-45-72-42     | dd@hotmail.com | 
      2 |              |                    | mm@free.fr     | Nice                
      2 |              |                    | mm@free.fr     | Paris               
      3 | Durand       | 01-44-28-52-50     |                | 
      3 | Durand       | 06-54-18-51-90     |                | 
(6 rows)

Client 4 non affiché

*/

