Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caezar

sql de View

Recommended Posts

Pessoal preciso de ajuda com o código desta view.

Abaixo tenho o modelo do meu bd e gostaria de incluir na view abaixo o grupo dos times.

post-292044-0-93667300-1402358495_thumb.

 

Alguém tem alguma ideia de como fazer????

VIEW `jogos_view` AS
    select distinct
        `j`.`data` AS `data`,
        `j`.`jogo_id` AS `jogo_id`,
        (select 
                `tm`.`nome`
            from
                `times_table` `tm`
            where
                (`tm`.`time_id` = `j`.`mandante`)) AS `mandante`,
        (select 
                `tsm`.`sigla`
            from
                `times_table` `tsm`
            where
                (`tsm`.`time_id` = `j`.`mandante`)) AS `siglaMandate`,
        (select 
                `também`.`bandeira`
            from
                `times_table` `também`
            where
                (`também`.`time_id` = `j`.`mandante`)) AS `bandeiraMandante`,
        (select 
                `tv`.`nome`
            from
                `times_table` `tv`
            where
                (`tv`.`time_id` = `j`.`visitante`)) AS `Visitante`,
        (select 
                `tsv`.`sigla`
            from
                `times_table` `tsv`
            where
                (`tsv`.`time_id` = `j`.`visitante`)) AS `siglaVistante`,
        (select 
                `tbv`.`bandeira`
            from
                `times_table` `tbv`
            where
                (`tbv`.`time_id` = `j`.`visitante`)) AS `bandeiraVisitante`,
        `j`.`golsMandante` AS `golsMandante`,
        `j`.`golsVisitante` AS `golsVisitante`,
        (select 
                `ft`.`desc`
            from
                `fase_table` `ft`
            where
                (`ft`.`id_fase` = `j`.`fase_campeonato_id_fase`)) AS `Fase`,
        `j`.`Rodada` AS `rodada`,
        `j`.`Local` AS `local`
    from
        `jogos_table` `j`
Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa query foi o workbench quem criou?

 

O ideal é utilizar JOINs para não ficar repetindo a mesma consulta como foi feito nos campos mandante, siglaMandante e bandeiraMandante:

SELECT
  j.data,
  j.jogo_id,  tm.nome AS mandante,
  tm.sigla AS siglaMandante,
  tm.bandeira AS bandeiraMandante,  tv.nome AS visitante,
  tv.sigla AS siglaVisitante,
  tv.bandeira AS bandeiraVisitante,
  ft.`desc` AS fase,
  j.rodada,
  j.`local`
FROM
  jogos_table AS j
INNER JOIN times_table AS tm ON tm.time_id = j.mandante
INNER JOIN times_table AS tv ON tv.time_id = j.visitante
INNER JOIN fase_table AS ft ON ft.id_fase = j.fase_campeonato_id_fase

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.