Ir para conteúdo
Pitag346

Sub Consulta SQL com PHP

Recommended Posts

Boa noite pessoal...

Eu não estou conseguindo fazer uma sub consulta... Se alguém puder clarear minhas ideias isso ser de muita ajuda.

Fiz varias pesquisas e ainda não entendi como posso fazer o seguinte:

 

Tenho 3 tabelas no banco de dados a tabela: Users, Ingress, Vendas.

A tabela ingress seria a tabela onde armazeno meus produtos, contendo o preço do produto obviamente.

E a tabela vendas eu armazeno o ID do produto vendido e o ID do user que vendeu... 

Quero fazer uma sub consulta pra exibir dentro de um loop o valor total de produtos vendidos por cada usuario, porem eu não faço ideia como fazer, tentei a seguinte forma:

 

$sq = "
SELECT
    P.id,
    (SELECT
        COUNT(C.lote_id)
    FROM
        ingress C
    WHERE
        ticket_promote_id = P.id ) FROM users GROUP BY P.id
";

$t2 = $conn->query($sq);

Mas não estou entendendo como fazer...

Se alguém puder só me dar um exemplo, eu só quero pegar o preço da outra tabela e exibir dentro de um loop em uma LISTA contendo, 

USER, VENDAS, VALOR TOTAL VENDIDO... 

 

Obrigado. att.

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Gleyson Abreu disse:

 

Conseguiria me ajudar amigo? não consegui adaptar o mesmo no meu código.

Segue um exemplo do que quero executar:

consulta.png.2d7b5787afa5ec206b2b766035221ca9.png

 

nota que a tabela acima com o nome RESULTA DA CONSULTA é uma tabela em HTML onde exibo os resultados em um LOOP... 

(Por conta do loop não estou conseguindo fazer essa lista eu acredito).

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código SQL que bolei para fazer isso é:

SELECT US.username, COALESCE(SUM(P.lote_preco), 0) as ValorVendido, COUNT(V.user_id) as Vendas FROM users as US LEFT JOIN vendas as V ON US.id = V.user_id LEFT JOIN produtos as P ON P.lote_id = V.lote_id GROUP BY US.id

O retorno é igual o mostrado por você sendo assim acho que deverá funcionar para você.

 

Para mostrar em loop você pode retorna os dados num fetchAll e fazer um foreach, exemplo:

	$all = $t2->fetchAll();

    foreach($all as $value){
        
        echo $value["ValorVendido"]."<br>";
        echo $value["username"]."<br>";
        echo $value["Vendas"]."<br>";

        echo "------------------------------------------<br>";
    }

Espero que lhe ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

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