Search code examples
sqlyii2inner-join

INNER JOIN YII2 in ModelSearch


I would like to implement this query in my model Search :

    SELECT 
         van.[ID_VANTIVE]
        ,van.[ID_VANTIVE_ANTIGO]
        ,van.[STATUS]
        ,van.[NUM_LP]
        ,van.[CLIENTE]
        ,van.[ENDERECO_TIPO]
        ,van.[ENDERECO]
        ,van.[ENDERECO_NUM]
        ,van.[ENDERECO_COMPLEMENTO]
        ,van.[CEP]
        ,van.[ENDERECO_MUNICIPIO]
        ,van.[ESTADO]
        ,van.[ESTADO_COD]
        ,van.[PRODUTO]
        ,van.[VELOCIDADE_ACESSO]
        ,van.[CodCliente]
        ,van.[tipo_saida_atend]
        ,van.[CAR_COD_GRUPO]
        ,van.[CAR_GRUPO]
        ,van.[CAR_RAZAO_SOCIAL]
        ,van.[CAR_SEGMENTO_CATEGORIA]
        ,van.[CAR_SEGMENTO_VALOR]
        ,van.[CAR_SERVICE_MANAGER]
        ,van.[CAR_LIDER_POS_VENDAS]
        ,van.[CAR_COORDENADOR_POS_VENDAS]
        ,van.[CAR_GERENTE_POS_VENDAS]
        ,van.[TIPO_SMART]
        ,n.[NodeID]
        ,n.[IP_Address]
        ,n.[Country]
        ,n.[Nome_do_cliente]
        ,n.[Nome_do_device]
        ,n.[Nome_do_site]
        ,n.[Operação]
        ,n.[Operadora]
        ,n.[Pacote_Smart]
    FROM [VANTIVE].[dbo].[TABELACO] AS van
    INNER JOIN [SOLARWINDS].[dbo].[TB_NODES_SMART] AS n
    ON van.[ID_VANTIVE] = n.[NodeID]

My Search :

public function search($params)
{
    $query = TABELACO::find();

Emphasizing that the query, besides being between two tables, are with two databases.

I tried in several ways, but with no success, please somebody help me


Solution

  • Your query should be like

    NOTE :EDIT UR DB NAMES WHEN UR EXECUTE

    USE 
    **[THE DATABASE NAME1]**
    GO
    
     SELECT 
             van.[ID_VANTIVE]
            ,van.[ID_VANTIVE_ANTIGO]
            ,van.[STATUS]
            ,van.[NUM_LP]
            ,van.[CLIENTE]
            ,van.[ENDERECO_TIPO]
            ,van.[ENDERECO]
            ,van.[ENDERECO_NUM]
            ,van.[ENDERECO_COMPLEMENTO]
            ,van.[CEP]
            ,van.[ENDERECO_MUNICIPIO]
            ,van.[ESTADO]
            ,van.[ESTADO_COD]
            ,van.[PRODUTO]
            ,van.[VELOCIDADE_ACESSO]
            ,van.[CodCliente]
            ,van.[tipo_saida_atend]
            ,van.[CAR_COD_GRUPO]
            ,van.[CAR_GRUPO]
            ,van.[CAR_RAZAO_SOCIAL]
            ,van.[CAR_SEGMENTO_CATEGORIA]
            ,van.[CAR_SEGMENTO_VALOR]
            ,van.[CAR_SERVICE_MANAGER]
            ,van.[CAR_LIDER_POS_VENDAS]
            ,van.[CAR_COORDENADOR_POS_VENDAS]
            ,van.[CAR_GERENTE_POS_VENDAS]
            ,van.[TIPO_SMART]
            ,n.[NodeID]
            ,n.[IP_Address]
            ,n.[Country]
            ,n.[Nome_do_cliente]
            ,n.[Nome_do_device]
            ,n.[Nome_do_site]
            ,n.[Operação]
            ,n.[Operadora]
            ,n.[Pacote_Smart]
        FROM **[THE DATABASE NAME1]**. [VANTIVE].[dbo].[TABELACO] AS van
        INNER JOIN **[THE DATABASE NAME2]**. [SOLARWINDS].[dbo].[TB_NODES_SMART] AS n
        ON van.[ID_VANTIVE] = n.[NodeID]``
    

    Make sure you have permission to access the database from one another