Я пытаюсь написать запрос SQLite, который выполняет JOIN, только если выполняется определенное условие (items.super = 1). Я знаю, что мог бы написать некоторый код в своем приложении, чтобы выяснить, имеет ли super == 1, и затем выполнить правильный запрос, но я бы предпочел, чтобы только один запрос работал в обоих случаях - будь то super или 0 или 1.
SELECT i2.id, i2.name
FROM items i
JOIN items i2 ON i.subcategory_id = i2.subcategory_id AND i.super = 1
WHERE i.id = ?
Выше я пытался добавить второе условие в мое предложение JOIN, но оно не работает, когда i.super == 0. Должен ли я решить эту проблему с помощью чего-то дурацкого, например, двух левых соединений и функции coalesce ()?
Спасибо.