Sql подзапрос откуда в

Я пишу что-то в этом роде:

select fielda,fieldb,
       (select sum(field1)-sum(field2) as fieldc 
        from tableb 
        where fieldid = list_of_ids[i]) 
from tablea 
where fieldid in (list_of_ids);

В подзапросе я хотел бы использовать значение из внешнего предложения where. Итак, если list_of_ids равен 123 456 789, fieldid в подзапросе будет 123, второй 456 и т. д. Возможно ли это?

Какой СУБД продукт вы используете? «SQL» - это просто язык запросов, а не имя конкретного продукта базы данных. Добавьте тег для продукта базы данных, который вы используете postgresql, oracle, sql-server, db2, ...

a_horse_with_no_name 12.04.2018 15:46
Столбец, а не поле ...
jarlh 12.04.2018 15:52

Postgres, но ответ Пелина работал

DeadlyWonky 12.04.2018 16:21
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
3
93
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вам просто нужно использовать ta.fieldid вместо list_of_ids[i]

select ta.fielda,ta.fieldb,
       (select sum(tb.field1)-sum(tb.field2) as fieldc 
        from tableb tb
        where tb.fieldid = ta.fieldid ) 
from tablea  ta
where ta.fieldid in (list_of_ids);

попробуйте этот код:

select ta.fielda,ta.fieldb,
       (select sum(field1)-sum(field2) as fieldc 
        from tableb tb
        where tb.fieldid = ta.fieldid ) 
from tablea  ta
where ta.fieldid in (list_of_ids);

Подзапрос привязывается к отдельной записи во внешнем запросе.

select fielda,fieldb,
       (select sum(field1)-sum(field2) as fieldc 
        from tableb 
        where tableb.fieldid = tablea.fieldid) 
from tablea 
where tablea.fieldid in (list_of_ids);

Просто используя простой оператор сравнения для корреляции вашего подзапроса с вашим внешним запросом, ваш подзапрос также будет сравниваться с любыми идентификаторами полей, найденными внешним запросом.

Другие вопросы по теме