【发布时间】:2016-09-23 17:35:30
【问题描述】:
我有这张桌子:
// mytable
+----+---------+---------+
| id | related | color |
+----+---------+---------+
| 1 | NULL | red |
| 2 | 1 | blue |
| 3 | NULL | green |
| 4 | 1 | white |
| 5 | 3 | brown |
| 6 | NULL | gray |
| 7 | 3 | black |
| 8 | 1 | orange |
| 9 | 6 | pink |
+----+---------+---------+
我有一个id 号码,我需要获取相关id 的颜色。
这里有一些例子:
$id = 4; // I need to get `red`
$id = 5; // I need to get `green`
$id = 6; // I need to get `gray`
$id = 9; // I need to get `gray`
这是我的查询:
SELECT t2.color FROM mytable t1 JOIN mytable t2 ON t1.related = t2.id WHERE t1.id = :id
它几乎适用于所有行并返回预期的颜色。只是它不适用于与NULL 相关的那些行。我该如何解决这个问题?
【问题讨论】: