У меня есть таблица foo
со следующей структурой:
| id | docId | content | parentId |
|----|--------|---------|----------|
| 1 | 19 | ... | NULL |
| 2 | 20 | ... | NULL |
| 3 | 20 | ... | NULL |
| 4 | NULL | ... | 3 |
| 5 | 20 | ... | NULL |
| 6 | NULL | ... | 5 |
| 7 | 21 | ... | NULL |
| 8 | NULL | ... | 7 |
| 9 | NULL | ... | 7 |
Я хочу выбрать все с помощью docId = 20
или с parentId, который соответствует строке с docId = 20
.
Я думал, что доберусь туда, используя левое соединение, но не повезло:
SELECT * FROM foo a
LEFT JOIN foo b ON b.id = a.parentId
WHERE a.docId = 20
Возвращает все строки, где docId = 20
, но не те, где docId = NULL
, а parentId - это строка с docId 20.