Возможно выбрать все записи таблицы A с присоединением таблицы B, где A.b_id = B.id, но чтоб были все записи таблицы A и только часть записей B?

Да, при использовании SQL и конкретно MySQL вы можете выбрать все записи из таблицы A с присоединением таблицы B, так, чтобы все записи из таблицы A были в результате, независимо от того, присутствуют ли соответствующие записи в таблице B. Вы также можете указать условия, по которым выбираются только определенные записи из таблицы B.

Чтобы реализовать это, вы можете использовать операция присоединения (JOIN) и конкретно левое внешнее присоединение (LEFT JOIN).

Запрос будет выглядеть примерно так:

SELECT A.*, B.*
FROM A
LEFT JOIN B ON A.b_id = B.id

В этом запросе мы выбираем все столбцы из таблицы A (A.*) и таблицы B (B.*). Мы присоединяем таблицу B к таблице A с помощью левого внешнего присоединения (LEFT JOIN) и указываем условие соответствия между столбцами b_id из таблицы A и id из таблицы B (A.b_id = B.id).

В результате этого запроса, все записи из таблицы A будут присутствовать, даже если нет соответствующих записей в таблице B. Если условие A.b_id = B.id не выполняется, столбцы, относящиеся к таблице B, будут содержать значения NULL.

Если вы хотите выбрать только определенные записи из таблицы B на основе определенного условия, вы должны добавить дополнительное условие в оператор JOIN, или использовать оператор WHERE в конце запроса. Например:

SELECT A.*, B.*
FROM A
LEFT JOIN B ON A.b_id = B.id
WHERE B.some_column = 'some_value'

В этом запросе, мы присоединяем таблицу B к таблице A с помощью левого внешнего присоединения, и добавляем условие B.some_column = 'some_value' в оператор WHERE. Только записи из таблицы B, которые соответствуют этому условию, будут включены в результат.

Таким образом, вы можете выбрать все записи из таблицы A с присоединением таблицы B, где A.b_id = B.id, и при этом выбрать только часть записей из таблицы B, указав соответствующие условия.