SQLite:Select语句并显示'null'值

SQLite:Select语句并显示'null'值,sqlite,Sqlite,我还有一个例子,我正在寻找一个可以显示null值的查询 首先,我制作了表1 +---------+----------+ |id_table1| value | +---------+----------+ | 1 | value1 | | 2 | value2 | | 3 | value3 | | 4 | value4 | | 5 | value5 | | 6 | value6

我还有一个例子,我正在寻找一个可以显示
null
值的查询

首先,我制作了表1

+---------+----------+
|id_table1| value    | 
+---------+----------+
|   1     | value1   | 
|   2     | value2   | 
|   3     | value3   | 
|   4     | value4   | 
|   5     | value5   |  
|   6     | value6   | 
|   7     | value7   | 
|   8     | value8   |  
|   9     | value9   | 
+---------+----------+ 
表2:

+---------+----------+
|id_table1| value    | 
+---------+----------+
|   P1    | valueP1  | 
|   P2    | valueP2  | 
+---------+----------+ 
这是我的关系表:

+---------+----------+---------+
|id_boss  | id_child |  answ   |  
+---------+----------+---------+
|   1     |     2    |    T    |
|   1     |     6    |    F    |
|   2     |     P1   |    T    |
|   2     |     4    |    F    |
|   6     |     P2   |    T    | 
|   6     |     8    |    F    |
+---------+----------+ --------+
为了使我的第一个查询能够工作,我遵循了这个很棒的方法,cek this

这是我的新问题

从关系表中, 比方说,我正在删除一些id_子值,以便以后可以填充它

+---------+----------+---------+
|id_boss  | id_child |  answ   |  
+---------+----------+---------+
|   1     |     2    |    T    |
|   1     |     6    |    F    |
|   2     |     P1   |    T    |
|   2     |     4    |    F    |
|   6     |          |    T    | 
|   6     |          |    F    |
|   4     |          |    T    | 
|   4     |          |    F    |
+---------+----------+ --------+
然后我想让我的查询看起来像这样:

+---------+-----------+-----------+
|id_boss  | child_T   | child_F   |     
+---------+-----------+-----------+
| value1  |  value2   |  value6   |
| value2  |  valueP1  |  value4   |
| value6  |  `null`   |  `null`   |
| value4  |  `null`   |  `null`   |
+---------+-----------+-----------+ 
试试这个:

SELECT (SELECT value FROM table1 WHERE table1.id_table1 = r1.id_boss) AS id_boss,
    COALESCE( (SELECT value FROM table1 WHERE table1.id_table1 = r1.id_child),
              (SELECT value FROM table2 WHERE table2.id_table2 = r1.id_child)
            ) AS child_T,
    COALESCE( (SELECT value FROM table1 WHERE table1.id_table1 = r2.id_child),
              (SELECT value FROM table2 WHERE table2.id_table2 = r2.id_child)
            ) AS child_F
FROM r_table AS r1 , r_table AS r2 
WHERE r1.id_boss = r2.id_boss AND r1.answ = 'T'  AND r2.answ = 'F';

这对我有用,但如果你有问题,请告诉我

SELECT (SELECT value FROM table1 WHERE table1.id_table1 = r1.id_boss) AS id_boss,
    COALESCE( (SELECT value FROM table1 WHERE table1.id_table1 = r1.id_child),
              (SELECT value FROM table2 WHERE table2.id_table2 = r1.id_child)
            ) AS child_T,
    COALESCE( (SELECT value FROM table1 WHERE table1.id_table1 = r2.id_child),
              (SELECT value FROM table2 WHERE table2.id_table2 = r2.id_child)
            ) AS child_F
FROM r_table AS r1 , r_table AS r2 
WHERE r1.id_boss = r2.id_boss AND r1.answ = 'T'  AND r2.answ = 'F';