внутреннее соединение в двух таблицах sqlserver

#sql-server #join

#sql-сервер #Присоединиться

Вопрос:

В настоящее время я работаю sql и хочу изучить объединения. Я начал с inner join , и у меня есть очень простой вопрос:

 select distinct brandname from zonerpm where 
trainer=@tname and companyname=(select id from companydetails where comname=@companyname)
  

Я хочу присоединиться к оператору, и я хочу узнать, как работают объединения.

Я хочу узнать, как это работает, и stackoverflow — лучшая платформа для этого, к которой я могу присоединиться, когда в операторе есть одно предложение where, но в этом операторе есть два предложения where. именно здесь я ударил.

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

1. Для объединения в этих таблицах должны быть общие столбцы.

Ответ №1:

Вы используете подзапрос, sql рассматривает подзапрос как другой подзапрос запроса, это не очень хорошая идея, это занимает много времени, а не join. если у вас есть столбец в brandname таблице, который содержит companydetails таблицу foreignkey , вы можете попробовать выполнить запрос ниже.

 select distinct zonerpm.brandname,companydetails.id from zonerpm 
inner join companydetails ON zonerpm.company_id=companydetails.id
where trainer=@tname 
  

Ответ №2:

    select distinct z.brandname from zonerpm z left join companydetails cd 
   on cd.companyname=z.companyname where  
   z.trainer=@tname;
  

z — это имя объекта для zonerpm
cd — это имя объекта для companydetails