SQL-запрос для извлечения данных

#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 )