#mysql #sql
#mysql #sql
Вопрос:
Я не могу понять, как получить требуемые данные из моей таблицы. Запрос, который я написал, показывает ошибку, в которой говорится, что подзапрос возвращает более одной строки..
SELECT name
FROM `business`
WHERE id = (
SELECT business_id
FROM bill
WHERE id = (
SELECT bill_id
FROM bill_schedule
WHERE show_bill = 1 )
Здесь подзапрос для bill_schedule возвращает более одной строки, где show_bill — логический столбец. Все, что я хочу здесь, это отобразить ‘name’ от компании, для show_bill которой установлено значение 1.
Ответ №1:
SELECT `name`
FROM `business`
WHERE id in (
SELECT business_id
FROM bill
WHERE id in (
SELECT bill_id
FROM bill_schedule
WHERE show_bill = 1 )
Ответ №2:
Поскольку вложенный запрос возвращает несколько строк, вы не можете использовать оператор равенства
Просто измените = на IN в вашем предложении where:
SELECT name
FROM `business`
WHERE id IN (
SELECT business_id
FROM bill
WHERE id IN (
SELECT bill_id
FROM bill_schedule
WHERE show_bill = 1 )