У меня есть две таблицы в базе данных, a
& b
.
Таблица b
имеет внешний ключ, который ссылается на столбец в a
.
Я пытаюсь выяснить, как получить одну строку из b
со всеми столбцами из соответствующего a
. Однако не все строки b
будут иметь соответствующие строки в a
.
Следующий SQL вернет все строки в b
, которые имеют соответствующие строки в a
со всеми столбцами из обеих таблиц.
"SELECT * FROM b INNER JOIN a ON b.foo = a.foo
Но я просто хочу одну строку, где b.foo
равно некоторому значению с соответствующими столбцами из (если есть).
Итак, наивно:
"SELECT * FROM b INNER JOIN a ON b.foo = a.foo WHERE b.foo = 'some value'
Проблема в том, что иногда это не возвращает строк, поскольку в a
может не быть соответствующей строки. Но мы гарантируем, что в b
есть строка, где b.foo
равна some value
, и это всегда нужно возвращать.
Существует ли команда SQL, которая всегда может вернуть одну строку в b (учитывая, что строка в b
существует) либо с соответствующими столбцами в a
, либо, если соответствующий a
не существует, только столбцы в b
?