我有兩個不同的表(從多個來源提取以獲得這些意見),具有完全相同的列名稱,我試圖從表A中找到值,這是從表B的差異。從2個相同的表列之間的sql差異
爲表A樣本數據:
id | code | dos | entry_id | survey_date
------------+----------+------------+----------------+-------------
1 | 0120 | 2017-07-02 | 141949406 | 2017-07-04
2 | 0150 | 2017-07-02 | 141949394 | 2017-07-04
3 | 4910 | 2017-07-02 | 141949304 | 2017-07-04
4 | 0150 | 2017-07-02 | 141945276 | 2017-07-31
5 | | | | 2017-07-31
6 | 0150 | 2017-07-02 | 141937311 | 2017-07-04
7 | | | | 2017-07-27
8 | 0120 | 2017-09-01 | 142080557 | 2017-08-01
9 | | | | 2017-07-31
10 | | | | 2017-07-31
15 | 0150 | 2017-07-02 | 141933588 | 2017-07-31
爲表B示例數據:
Table B:
id | code | dos | entry_id | survey_date
------------+----------+------------+----------------+-------------
11 | 0150 | 2017-09-05 | 142081004 |
12 | 0150 | 2017-09-05 | 142082062 |
1 | | | | 2017-07-04
16 | 0120 | 2017-07-02 | 141949391 |
2 | | | | 2017-07-04
3 | 4910 | 2017-07-02 | 141949304 | 2017-07-04
3 | 4910 | 2017-07-02 | 141949304 | 2017-07-04
13 | 0150 | 2017-07-02 | 141947246 |
4 | 0150 | 2017-07-02 | 141945276 | 2017-07-31
14 | 0150 | 2017-07-02 | 141943912 |
5 | | | | 2017-07-31
6 | | | | 2017-07-04
15 | 0150 | 2017-07-02 | 141933588 |
7 | | | | 2017-07-27
8 | | | | 2017-08-01
9 | | | | 2017-07-31
10 | | | | 2017-07-31
我已經使用
select * from table_A except select * from table_b;
結果樣品:
id | code | dos | entry_id | survey_date
------------+----------+------------+----------------+-------------
1 | 0120 | 2017-07-02 | 141949406 | 2017-07-04
2 | 0150 | 2017-07-02 | 141949394 | 2017-07-04
8 | 0120 | 2017-09-01 | 142080557 | 2017-08-01
6 | 0150 | 2017-07-02 | 141937311 | 2017-07-04
15 | 0150 | 2017-07-02 | 141933588 | 2017-07-31
它給了我不同行,但我需要的是不同的 預期結果列值:
id | code | dos | entry_id | survey_date
------------+----------+------------+----------------+-------------
1 | 0120 | 2017-07-02 | 141949406 |
2 | 0150 | 2017-07-02 | 141949394 |
8 | 0120 | 2017-09-01 | 142080557 |
6 | 0150 | 2017-07-02 | 141937311 |
15 | | | | 2017-07-31
預期的結果集ID = 1有survey_date值,因爲該值是表B的一部分,我需要它爲null。同樣,對於行id = 15,除了survey_date以外,每個列都匹配,因此結果應該除了survey_date之外的所有列值都爲null,我該如何實現?對不起,如果它已發佈較早
改變爲具有期望輸出 – bocadev
它必須是 「SELECT *」 或可能是「選擇ID,密碼,DOS,entry_id,survey_date描述,等等 –
它可以選擇ID,代碼,DOS等 – bocadev