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';