Я хочу запросить таблицу с двумя параметрами в where condition, и оба параметра возвращаются из другого запроса

#sql #sql-server

#sql #sql-сервер

Вопрос:

Я хочу запросить таблицу с двумя параметрами в where condition, и оба параметра возвращаются из другого запроса.

Допустим, таблица t1 с column1 и column2, если я использую запрос select column1,column2 из t1, предположим, он возвращает 10 записей

Я хочу запросить что-то вроде приведенного ниже

 for(int j=0;j<10;j  )
{
   select * 
   from t2 
   where t2.column1=t1.column1(jth position) 
     and t2.column2=t1.column2(jth position)
}
  

Комментарии:

1. Sql server 2012

2. спасибо за ваши усилия

Ответ №1:

Много способов сделать это. Мне нравится использовать встроенные запросы (SQL Server). Я не уверен, что вы можете сделать это на других языках SQL (я никогда не пробовал).

 select * 
from t2 
where 
    t2.column1 = (select column1 from t1 where t1.id = j)
    and t2.column2 = (select column2 from t1 where t1.id = j)
  

Пожалуйста, обратите внимание, что вы должны смотреть на это скорее как на псевдокод. Я составил столбец id для примера, но дело в том, что вы делаете что-то вроде этого, ваши встроенные операторы select должны возвращать только один результат, а не массив результатов.

Если вы хотите работать с большими наборами условных данных, вы можете использовать joins для выполнения того же самого:

 select * 
from t2 
inner join t1 on t1.column1 = t2.column1
              and t1.column2 = t2.column2
  

Надеюсь, это поможет.