Carcleo 4 Denunciar post Postado Junho 4, 2011 Ola pessoal. Tenho 3 tabelas 1) Fornecedores 2) Produtos 3) Produtos_Lista Bom, nessa Produtos_Lista, eu gravo os dados dos produtos que vão preencher minha lista de produtos que vou por a disposição de clientes. O problema é que eu não tenho um campo fornecedor na tabela Produtos_Lista e todo produto tem um fornecedor. Dai, eu queria saber, qual os nomes dos fornecedores que tem seus produtos registrados na tabela de de Produtos_lisa. Outra por menor é que só me interessa a ultima lista. Dai fiz a seguinte consulta que deu certo: select f.id as Fornecedor_id, f.nome as Fornecedor_nome, f.razaosocial as Fornecedor_razao from fornecedores f inner join (produtos p inner join produtos_lista pl on pl.id_produto = p.id) on p.fornecedor=f.id where pl.id_lista=3 Como só preciso da última lista daí fiz assim: select f.id as Fornecedor_id, f.nome as Fornecedor_nome, f.razaosocial as Fornecedor_razao from fornecedores f inner join (produtos p inner join produtos_lista pl on pl.id_produto = p.id) on p.fornecedor=f.id where pl.id_lista=max(pl.lista_id) Só que aí, quando troquei o 7 por max(pl.lista_id), da erro de uso indevido da group função. Como posso contornar esse problema? Compartilhar este post Link para o post Compartilhar em outros sites
Bezerk 3 Denunciar post Postado Junho 4, 2011 Espera ai que o Motta vai resolver essa consulta pra você, o cara tem a manha! Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 4, 2011 Ta certo, fico no aguardo Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Junho 4, 2011 Tentei assim tambem, da certo, mas não consigo fazer apenas com a última lista. select f.id as Fornecedor_id, f.nome as Fornecedor_nome, f.razaosocial as Fornecedor_razao from /*fornecedores f inner join (produtos p inner join produtos_lista pl on pl.id_produto = p.id) on p.fornecedor=f.id */ produtos_lista pl inner join ( produtos p inner join fornecedores f on p.fornecedor=f.id ) on pl.id_produto = p.id where pl.id_lista=3 (Aqui eu tenho que pegar o id da última lista Consegui! Ficou assim: $sql_fornecedor= " select f.id as Fornecedor_id, f.nome as Fornecedor_nome, f.razaosocial as Fornecedor_razao, pl.id_lista as Lista from produtos_lista pl inner join (produtos p inner join fornecedores f on p.fornecedor=f.id) on pl.id_produto = p.id where pl.id_lista=(select max(pl.id_lista) from produtos_lista pl) GROUP by f.id "; Grato a todos! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 4, 2011 use o max http://forum.imasters.com.br/topic/429541-consulta/page__p__1695533__hl__max__fromsearch__1#entry1695533 http://forum.imasters.com.br/topic/415402-pegar-ultimos-posts-de-todos-usuarios/page__p__1635021__hl__max__fromsearch__1#entry1635021 http://forum.imasters.com.br/topic/398316-selecionar-registro-com-maior-data/page__p__1557891__hl__max__fromsearch__1#entry1557891 e outros exemplos pelo fórum mesmo. Compartilhar este post Link para o post Compartilhar em outros sites