regina 0 Denunciar post Postado Março 8, 2012 Boa tarde, não sei como montar o SELECT para a seguinte questão: Tenho 3 tabelas (grupo_de_produtos e produtos e produtos_fotos). Na tabela grupo_de_produtos tenho grupo_id, descricao, imagem Na tabela de produtos tenho: produto_id, grupo_id, produto_nome, descricao, imagem (para banner) Na tabela de produtos_fotos tenho: foto_id, produto_id, imagem Preciso fazer uma seleção usando o seguinte pensamento: Se não tiver imagem na tabela produtos usar a da tabela produtos_fotos mas se também não existir imagem na produtos_fotos usar exibir a imagem da tabela grupos_de_produtos. Desde já agradeço a quem puder me ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 8, 2012 Uma solução possível seria uma function que retornaria a imagem com base na regra passada. imagem em questão é um BLOB ou um caminho de rede ? Grosso modo function foto (p_produto) select imagem,grupo_id from produtos where produto = p_produto; se não achou ou imagem vazia select imagem from produtos_fotos where produto = p_produto; se não achou ou imagem vazia select imagem from grupo_de_produtos_fotos where grupo = grupo_id; retorna imagem Não conheço a síntaxe exata em Mysql, desculpe. Compartilhar este post Link para o post Compartilhar em outros sites
regina 0 Denunciar post Postado Março 8, 2012 qual seria mais apropriado usar: if ou not exist? nunca fiz select com esses "comandos". Agradeço a atenção Motta Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 9, 2012 qual seria mais apropriado usar: if ou not exist? Os dois talvez tenham de ser tratados , pois o registro pode não existir ou existir e o campo não estar preenchido (nulo ou branco) Não conheço a síntaxe para MySql como disse, não sei a melhor forma. Mas grosso modo é como disse, fazer os selects segundo as regras que você passou. A imagem em questão é um BLOB ou um caminho de rede ? Compartilhar este post Link para o post Compartilhar em outros sites