Ir para conteúdo

Arquivado

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

ANILTON

SELECIONAR 3 CAMPOS DA MESMA TABELA

Recommended Posts

Prezados,

Boa Tarde!

Estou fazendo um trabalho de um curso em SQL e gostaria de uma ajuda de vocês mais experientes.

Tenho uma tabela de nome tblalunos, nesta tabela há 7 colunas:  nome, material, anexo, portifolio, fornecedor, nota, data

Preciso selecionar em SQL os alunos em que fornecedor, anexo e portifólio possuem em seus dados em algum momento igual a "INTERNO" apenas os que receberam dia 23/10/2018.

Minha tabela tblalunos está com os seguintes dados:

nome               material              fornecedor       anexo           portifolio     nota        data

JOSE                COPIA                 INTERNO         OUTRO           LIVRARIA        5,0      2018-10-23
MARCOS              LIVRO                 LIVRARIA        INTERNO         LIVRARIA        5,0      2018-10-21
MARIA               LIVRO                 INTERNO         LIVRARIA        INTERNO         5,0      2018-10-23
MARCELO             LIVRO                 INTERNO         OUTRO           INTERNO         5,0      2018-10-22
PEDRO               COPIA                 LIVRARIA        LIVRARIA        LIVRARIA        5,0      2018-10-23
MARIANA             LIVRO                 LIVRARIA        INTERNO         INTERNO         5,0      2018-10-21

 

Minha SQL atual está assim:

(SELECT * 
 FROM `tblalunos` 
 WHERE `tblalunos`.`fornecedor` = 'INTERNO' 
 AND `tblalunos`.`data` BETWEEN '2018-10-23' AND '2018-10-23' 
 LIMIT 300) 
UNION 
(SELECT * 
 FROM `tblalunos` 
 WHERE `tblalunos`.`anexo` = 'INTERNO' 
 AND `tblalunos`.`data` BETWEEN '2018-10-23' AND '2018-10-23' 
 LIMIT 300)
UNION 
(SELECT * 
 FROM `tblalunos` 
 WHERE `tblalunos`.`portifolio` = 'INTERNO' 
 AND `tblalunos`.`data` BETWEEN '2018-10-23' AND '2018-10-23' 
 LIMIT 300) 

 

A partir deste SELECT será gerado um relatório que está OK

 

Até funciona, mas está omitindo algumas linhas, peço ajuda a vocês experientes por favor, desde já agradeço.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando LIMIT, não é por isso que está omitindo resultados?

 

Obs: UNION serve para unir resultados de tabelas distintas, acho que não é uma prática boa usar para consultar na mesma tabela, posso estar errado, se tiver me corrijam.

 

Acho que daria para simplificar a consulta, tenta assim:

SELECT * FROM tblalunos WHERE (fornecedor = "INTERNO" OR anexo = "INTERNO" OR portifolio = "INTERNO") AND data = "2018-10-23"

Ficou um pouco confusa sua explicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por WEBCHARLES
      MEU MODEL

      public function exibir_noticia() {

      $consulta = $this->db->query('
      SELECT *
      FROM Noticia_Site_Cairu

      ');
      return $consulta->result();
      }

      NO MEU CONTROLLER:

      public function index()

      {
      $this->load->model('noticia_model');
      $consulta = $this->noticia_model->exibir_noticia();
      //print_r($casdatrado);
      $this->load->view('v_home', $consulta);
      }

      Quando vou exibir na view:


      foreach ($consulta as $exibir):{
      echo '
      <tr class="success">
      <td>'.$exibir->titulo.'</td>
      <td>'.$exibir->texto.'</td>
      <td>'.$exibir->imagem.'</td>
      <td>'.$exibir->link.'</td>
      <td>'.$exibir->nome_link.'</td>
      <td>'.$exibir->video.'</td>
      <td>'.$exibir->data.'</td>
      </tr>';
      }endforeach;

      APARECE ESSE ERRO:

      A PHP Error was encountered

      Severity: Notice

      Message: Undefined variable: consulta

      Filename: views/v_home.php

      Line Number: 88

      Backtrace:

      File: /var/www/html/admnoticias/application/views/v_home.php
      Line: 88
      Function: _error_handler

      File: /var/www/html/admnoticias/application/controllers/Home.php
      Line: 17
      Function: view

      File: /var/www/html/admnoticias/index.php
      Line: 315
      Function: require_once

×

Informação importante

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