Следующий запрос отлично работает:
Выберите username и name из таблицы users, левое соединение с avatar из таблицы user_meta, где username или name соответствует термину :search.
$sql = 'SELECT users.username, users.name, user_meta.avatar
FROM users
LEFT JOIN user_meta
ON users.username = user_meta.username
WHERE users.username LIKE :search
OR users.name LIKE :search';
Но он возвращает только одну строку, в то время как в базе данных есть несколько строк, которые совпадают.
Как я могу заставить это возвращать все совпадающие строки, но по-прежнему возвращать только столбцы username, user и avatar в объекте?
Извините, я имел в виду, что он возвращает только одну строку
Что вы подразумеваете под «одним результатом»? Если есть только одна результирующая строка, есть только одна результирующая строка. И почему вы хотите использовать SELECT *, если вам не важны все столбцы?
Обновил вопрос для ясности, извините, ребята. Я имею в виду, что он возвращает только одну строку, когда есть несколько строк, соответствующих поисковому запросу. Как я могу изменить это, чтобы вернуть все совпадающие строки?






Моя беда .. Я возвращал $stmt->fetch(); вместо $stmt->fetchAll();.
В самом запросе нет ничего плохого.
Надеюсь, это поможет кому-то другому, если они наткнутся на что-то подобное.
возврат одного результата означает результат только одной строки или возврат только одной строки только с
name,usernameиuser_meta.avatar?