2017-10-09 131 views
1

我得到一行显示两个空值的问题。PSQL代码丢失

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) 

我需要从tmnimi的giardino上选择NULL VALUE。

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行)

我得到的只有这个选择

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) 

回答

0

使用左边的两个表之间的连接:

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

当你离开从tuotemerkki加盟tuote,那么前表中的每个记录都保证出现在r esult集。由于Giardino记录与tuote表中的任何内容都不匹配,因此该表中的所有列都将具有Giardino记录的NULL值。