MySQL – Select Em 2 Ou Mais Tabelas

Tutorial Anterior > MySQL – Principais Comandos MyQL

Nas edições anteriores mostramos como criar uma tabela, efetuar inclusões, alterações, exclusões e até mesmo backups personalizados!

Se você vem acompanhando nossas matérias, certamente já tem conhecimento suficiente para fazer sistemas de pequeno, médio ou até mesmo grande porte!

O que passarei abaixo, levei alguns anos para aprender!

Para ser sincero, alguns programadores nunca trabalharam com isso na vida, mas… vou lhe apresentar na matéria de hoje um SELECT prático, onde você coleta dados de uma só tabela!

Como de costume, para lhe facilitar, disponibilizamos em anexo os scripts desta matéria, para você analisar e testar.

O processo de criação é simples e vamos descrever abaixo passo a passo o que você deverá fazer:


----- CRIANDO A TABELA DE ENQUETES -----

CREATE TABLE `tbl_enquetes` (
  `id_enquete` tinyint(3) unsigned NOT NULL auto_increment,
  `titulo_enquete` varchar(50) default NULL,
  `status` varchar(10) default NULL,
  PRIMARY KEY  (`id_enquete`),
  KEY `id_enquete` (`id_enquete`)
);

INSERT INTO `tbl_enquetes` VALUES ('1','O que você achou desta enquete?','1');

----- CRIA A TABELA DE PERGUNTAS -----

CREATE TABLE `tbl_enquetes_votos` (
  `id_voto_enquete` tinyint(3) unsigned NOT NULL auto_increment,
  `id_enquete` tinyint(11) unsigned default NULL,
  `resposta` char(30) default NULL,
  `voto` char(15) default NULL,
  PRIMARY KEY  (`id_voto_enquete`),
  KEY `id_voto_enquete` (`id_voto_enquete`)
);

----- INSERE DADOS NA TABELA DE PERGUNTAS -----

INSERT INTO `tbl_enquetes_votos` VALUES (13,1,'resposta 1','3');
INSERT INTO `tbl_enquetes_votos` VALUES (14,1,'resposta 2','3');
INSERT INTO `tbl_enquetes_votos` VALUES (15,1,'resposta 3','3');
INSERT INTO `tbl_enquetes_votos` VALUES (16,1,'resposta 4','1');

----------

OBS.: Copie tudo o que está dentro do arquivo insercao-script-sql.txt e cole no SQL Editor (conforme imagem abaixo).

Feito isso, clique em F9 (RUN) e o Programa carregará suas informações na base de dados, efetuando a exclusão de seu conteúdo.

Criar Tabela MySQL

Feita a inserção, efetue um SELECT individual em cada Tabela, verificando se os dados estão corretos!

Estando tudo ok, passaremos paremos para o próximo passo!

Select Personalizado

O Select abaixo é prático e objetivo, porém, pode ser utilizado em casos específicos!

Exemplo:

Tive a necessidade de verificar todos os dados de 2 tabelas que eram ligadas por 1 único campo (o id_enquete).

Bem… se você pensar direitinho, no modo normal, poderíamos dar 2 comandos de SELECT e resolveríamos este problema!

Através deste exemplo, deixei meu código mais enxuto e prático de ser trabalhado!

Vamos ao exemplo prático?


----- SCRIPT DO SELECT PERSONALIZADO -----

SELECT * FROM tbl_enquetes,tbl_enquetes_votos
  WHERE tbl_enquetes.id_enquete LIKE '%VALOR%'
    OR tbl_enquetes_votos.id_enquete LIKE '%VALOR%'

----------

OBS.: Copie tudo o que está dentro do arquivo insercao-script-sql.txt e cole no SQL Editor (conforme imagem abaixo).

Feito isso, clique em F9 (RUN) e o Programa carregará suas informações na base de dados, efetuando a exclusão de seu conteúdo.

Só uma observação:

Antes de rodar o script, onde está escrito VALOR, altere para o número 1 (é o valor da tabela tbl_enquetes).

Discriminando o script:

SELECT * FROM tabela1,tabela2
Veja que acima estamos dizendo ao sistema para selecionar todos os dados das tabelas 1 e 2.

WHERE tabela1.id_enquete LIKE ‘%VALOR%’
Onde a chave da tabela 1 é id_enquete, tendo como valor (que pode ser uma variável) o número 1.

OR tabela2.id_enquete LIKE ‘%VALOR%’
Ou a tabela 2, onde é relacionada pela id_enquete, tendo como valor (que pode ser variável) o número 1.

Tendo este tipo de raciocínio em mente, você vai dar o SELECT personalizado em qualquer tabela.

Executamos o select, veja o exemplo na imagem a seguir:

MySQL Select

Prático, não?

Faça já seus testes, praticando em seus sistemas! Os resultados serão surpreendentes!

Espero ter lhe ajudado em algo com esta matéria.

Envie-nos suas dúvidas e dê sugestões para as próximas matérias! Nosso compromisso é lhe ajudar!

DOWNLOAD: Descarregue o código utilizado neste tutorial de Select Em 2 Ou Mais Tabelas, em formato .zip.

Tutorial Seguinte > MySQL – Conversão Access Para MySQL

Be Sociable, Share!

7 Comentários

  1. precisava de um select em duas tabelas, mas com where e like

    ex.: select * from tab1, tab2 where campo like '%var%'

    queria juntar todos os resultados…

    desde ja agradeço.

  2. Eduardo

    Tem como dar um order by id desc nessa instrução sql?

  3. Wanderrufie Melo

    Está sendo um desafio e tanto, para mim, executar essa função de busca: Duas ComboBox. Uma CboCategoria.Text exibe as categorias. CboCritério exibe Nome ou CPF. E um filtro TextBox. Mas são 7 tabelas não relacionadas. Como fazer com que ao selecionar nos combos uma categoria e o nome o datagridview mostre somente a tabela da categoria selecionada? 

  4. Wanderrufie

    Em VB.NET. Desculpas, pois esqueci de comentar.

Participa! Comenta...