почему я получаю ошибку: подзапрос возвращает более 1 строки
SELECT name, cat_id, ( SELECT topic FROM category WHERE cat = u.cat_id ) AS topics FROM name u
Спасибо
У меня может быть глупый ответ, но почему вы не используете JOIN?
SELECT name.cat_id, name.name, category.topic FROM name INNER JOIN category ON category.cat = name.cat_id
Подзапрос:
SELECT topic FROM category WHERE cat = u.cat_id
Возвращает более одного результата, который вы пытаетесь поместить в один ряд.
Если ваш вложенный запрос выбора возвращает более одного, вы можете получить только первый результат, сказав SELECT TOP 1 тему из категории ...
нужно объединить 2 стола
SELECT name.name, name.cat_id, category.topic FROM name, category WHERE name.cat_id = category.cat
Потому что в вашем подзапросе вы получаете несколько строк темы, возвращенных .
А в выбрать подзапрос детали такой случай не разрешен .
Используйте JOINS , если для пользователя требуется несколько строк темы для категории.
Поскольку вы используете подзапрос в качестве столбца, он должен возвращать одну строку. Вы можете добавить LIMIT 0,1
ну да. Он возвращает несколько строк в вашем случае. Что ты хочешь иметь?
Вы можете получить 1 строку, если добавите LIMIT 1 в конце подзапроса. Вы можете использовать JOIN, если вам нужна одна дополнительная строка для каждой дополнительной темы.
У вас есть больше тем этой категории ID.
потому что у вас есть две строки с одним и тем же котом (я предполагаю, что это означает категорию)