2017-10-09 11 views
1

Mon problème lors de l'affichage d'une ligne avec deux valeurs nulles.Code PSQL manquant

FROM tuotemerkki; 
     tmtunnus | tmnimi |  maa 
     ----------+----------+------------- 
       1 | McCee | Yhdysvallat 
       2 | KooTek | Italia 
       3 | Giardino | Italia 
     (3 rows) 

FROM tuote; 
ttunnus |   tnimi   |  kuvaus  | suositushinta | tmtunnus 
---------+-----------------------+--------------------+---------------+---------- 
    111 | Trimmeri TRCee  | tehokas 4-tahtinen |  179.00 |  1 
    112 | Trimmerisiima Cee  | laadukas siima  |   6.99 |  1 
    113 | Moottorisaha MSCee RR | robusti ja raskas |  559.00 |  1 
    114 | Trimmerisiima Y  | yleissiima   |   3.99 |  2 
    115 | Lapio L    | kevyt yleislapio |   23.95 |  2 
(5 rows) 

J'ai besoin de ce sélectionné avec la valeur NULL sur giardino de tmnimi.

tmnimi |   tnimi   |  kuvaus 
----------+-----------------------+-------------------- 
McCee | Trimmeri TRCee  | tehokas 4-tahtinen 
McCee | Trimmerisiima Cee  | laadukas siima 
McCee | Moottorisaha MSCee RR | robusti ja raskas 
KooTek | Trimmerisiima Y  | yleissiima 
KooTek | Lapio L    | kevyt yleislapio 
Giardino |      | 

(6 lignes)

Je ne reçois que ce sélectionné

SELECT tmnimi, tnimi, kuvaus 
    FROM tuote 
    CROSS JOIN tuotemerkki 
    WHERE tuote.tmtunnus = tuotemerkki.tmtunnus; 

tmnimi |   tnimi   |  kuvaus 
--------+-----------------------+-------------------- 
McCee | Trimmeri TRCee  | tehokas 4-tahtinen 
McCee | Trimmerisiima Cee  | laadukas siima 
McCee | Moottorisaha MSCee RR | robusti ja raskas 
KooTek | Trimmerisiima Y  | yleissiima 
KooTek | Lapio L    | kevyt yleislapio 
(5 rows) 

Répondre

0

Utilisez une jointure gauche entre les deux tables:

SELECT 
    t1.tmnimi, 
    t2.tnimi, 
    t2.kuvaus 
FROM tuotemerkki t1 
LEFT JOIN tuote t2 
    ON t1.tmtunnus = t2.tmtunnus 

Lorsque vous avez quitté joindre de tuotemerkki à tuote, puis chaque enregistrement dans l'ancienne table est garanti pour apparaître dans le r jeu d'esult. Puisque l'enregistrement Giardino ne correspond à rien dans la table tuote, toutes les colonnes de cette table auront une valeur NULL pour l'enregistrement Giardino.