Jump to content


Photo

Como Selecionar Duas Tabelas Diferentes Numa Mesma Query?


  • Faça o login para participar
10 replies to this topic

#1 mari_anap

mari_anap

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 23/05/2007, 10:47

Olá galera!
Se alguém puder me ajudar ficarei muito grata!

Tenho uma busca onde o usuário digita uma palavra ($localiza) que será buscada no bd, porém meu bd possui duas tabelas diferentes, sem nenhuma relação entre si, mas queria que buscasse nas duas!
deu p entender?

Já tentei de várias formas:

$sql = (SELECT * FROM Paginas WHERE texto LIKE'%$localiza%')UNION(SELECT * FROM Produtos WHERE descricao LIKE'%$localiza%'); //dessa forma não funcionou, deu erro <_< ... entre outras.

Encontrei um jeito que está funcionando, porém parece entrar em LOOP, e não verifica o where do segundo select, parece postar na tela muitos resultados repetidos, aonde nem exite a palavra buscada ($localiza), e os que exitem são só do primeiro select:

$sql = ("SELECT `Paginas`. *,`Produtos`. * FROM Paginas, Produtos WHERE texto LIKE'%$localiza%' OR descricao LIKE'%$localiza%'"); //dessa forma pelo menos seleciona as duas tabelas ao mesmo tempo, mas ainda tem algo de errado <_< ...

Não sei oque posso modificar nesse select que está funcinando mais ou menos...

vlw!

Edição feita por: mari_anap, 23/05/2007, 10:55.


#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 23/05/2007, 12:08

O que você poderia fazer é usar UNION dentro das restrições. Se não é possível segui-las, use 2 queries.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 Rogerio Lamarques

Rogerio Lamarques

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Desenvolvimento PHP+ MySQL<br />Novidade Flash

Posted 02/02/2008, 12:54

Olá galera!
Se alguém puder me ajudar ficarei muito grata!

Tenho uma busca onde o usuário digita uma palavra ($localiza) que será buscada no bd, porém meu bd possui duas tabelas diferentes, sem nenhuma relação entre si, mas queria que buscasse nas duas!
deu p entender?

Já tentei de várias formas:

$sql = (SELECT * FROM Paginas WHERE texto LIKE'%$localiza%')UNION(SELECT * FROM Produtos WHERE descricao LIKE'%$localiza%'); //dessa forma não funcionou, deu erro <_< ... entre outras.

Encontrei um jeito que está funcionando, porém parece entrar em LOOP, e não verifica o where do segundo select, parece postar na tela muitos resultados repetidos, aonde nem exite a palavra buscada ($localiza), e os que exitem são só do primeiro select:

$sql = ("SELECT `Paginas`. *,`Produtos`. * FROM Paginas, Produtos WHERE texto LIKE'%$localiza%' OR descricao LIKE'%$localiza%'"); //dessa forma pelo menos seleciona as duas tabelas ao mesmo tempo, mas ainda tem algo de errado <_< ...

Não sei oque posso modificar nesse select que está funcinando mais ou menos...

vlw!


Tente da segunte forma!!!


$sql="SELECT * FROM tabela1,tabela2 WHERE tabel1.Camporeferente LIKE '%$localiza%' OR tabela2.Camporeferente LIKE '%$localiza%'";

Isso deve dar uma solução para o seu caso, se não poste a sua dúvida mais detalhada para te dar uma sql melhor.
Aberta as inscrições para Formação Desenvolvedor PHP em Dois Irmãos/RS
Saiba mais com rogerio.lamarques@gmail.com

#4 NecroStylery

NecroStylery

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado

Posted 31/03/2008, 08:41

SELECT * FROM tabela1 AS tbl1, tabela2 AS tbl2 WHERE tbl1.texto like "%$localiza%" or tbl2.descricao like "%$localiza%";

dessa forma é a melhor solução para o teu problema ;]

#5 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 01/04/2008, 18:54

Dessa forma irá gerar mais registros que o esperado. Você tem aí um CROSS JOIN.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#6 NecroStylery

NecroStylery

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado

Posted 20/04/2008, 14:34

O erro do UNION que você comentou, é pq provavelmente as duas tabelas não possuem as mesmas quantidades de campos!

tente usar o UNION dessa forma:

$sql =
(SELECT texto AS Resultado FROM Paginas WHERE texto LIKE'%$localiza%')
  UNION
(SELECT descricao FROM Produtos WHERE descricao LIKE'%$localiza%');

no caso do UNION ele vai pegar os resultados das duas tabelas e iria unir elas na mesma coluna. E para isso precisa de um número de colunas selecionadas iguais.

Ou seja, neste caso eu selecionei uma coluna no primeiro query (texto) e uma coluna também no segundo query (descricao).

caso você precise de mais campos, tente relacionar eles com informações iguais. senao o UNION nao funciona mesmo.

#7 allGNUtil

allGNUtil

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 22/10/2009, 07:24

Ola gente, alguem poderia me ajudar?

Tenho este codigo abaixo e queria saber para selecionar os campos das 3 tabelas, sendo que o campo cliente_codigo faz a ligacao entre as 3 tabelas.

Valeu!!!

<?php
if (strlen($_POST[frm_email])>5) {

$senha = md5($_POST[frm_senha]);

$result = mysql_query("SELECT cliente_codigo AS codigo, cliente_sobrenome AS sobrenome, cliente_nome AS prenome, cliente_email AS climail, cliente_endereco AS cliendereco, cliente_company AS clicomp, cliente_depart AS clidepart FROM clientes WHERE cliente_email = '$_POST[frm_email]' AND cliente_senha = '$senha'");

$resulte = mysql_query("SELECT endereco_codigo AS end_codigo, endereco_cep AS end_cep, endereco_provincia AS end_prov, endereco_cidade AS end_cidade, endereco_complemento AS end_complemt FROM clientes_enderecos WHERE cliente_codigo = $row[codigo]");

$resultf = mysql_query("SELECT telefone_numero AS tel_num, telefone_ren AS tel_ren, telefone_fax AS tel_fax FROM clientes_telefones WHERE cliente_codigo = $row[codigo]");


if ($result ==0) { echo "<b> ERRO " . mysql_errno() . ": " . mysql_error() . "</b>"; die();}

if(mysql_affected_rows() >= 1){ // -----> Dados do cliente estao corretos
$row = mysql_fetch_array($result);

$codcli = $row[codigo];
$nomes = explode(" ",$row[sobrenome]);
$nomcli = $nomes[0];
$prenome = $row[prenome];
$cliemail = $row[climail];
$cliendereco = $row[cliendereco];
$clicomp = $row[clicomp];
$clidepart = $row[clidepart];
$end_cep = $row[end_cep];
$end_prov = $row[end_prov];
$end_cidade = $row[end_cidade];
$end_complemt = $row[end_complemt];
$tel_num = $row[tel_num];
$tel_ren = $row[tel_ren];
$tel_fax = $row[tel_fax];



$ultimo_login = getMysqlDatetime(time());
$_SESSION['codcli'] = $codcli;
$_SESSION['nomcli'] = $nomcli;
$_SESSION['ultimo_login'] = $ultimo_login;
$_SESSION['qtde'] = 0;
$_SESSION['prenome'] = $prenome;
$_SESSION['cliemail'] = $cliemail;
$_SESSION['cliendereco'] = $cliendereco;
$_SESSION['clicomp'] = $clicomp;
$_SESSION['clidepart'] = $clidepart;
$_SESSION['end_cep'] = $end_cep;
$_SESSION['end_prov'] = $end_prov;
$_SESSION['end_cidade'] = $end_cidade;
$_SESSION['end_complemt'] = $end_complemt;
$_SESSION['tel_num'] = $tel_num;
$_SESSION['tel_ren'] = $tel_ren;
$_SESSION['tel_fax'] = $tel_fax;
?>

Edição feita por: allGNUtil, 22/10/2009, 07:30.


#8 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 20/09/2017, 15:59

Viagra Online Pharmacy Reviews online pharmacy Priligy Effetti Indesiderati Viagra Kaufen Bei Apotheke Propecia Working Regrow Hair Cialis Opinion cialis Commande Viagra Canada
Priligy Vs Tramadol cialis Where To Buy Provera Amenorrhoea
Was Kostet Viagra In Apotheke Does Amoxicillin Cause Headaches
Order Tamoxifen No Prescription <a href=http://cialtobuy.com>cialis price</a> Cephalexin Dose Cats

#9 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 08/10/2017, 00:11

Buy Zithromax 1.0 Gm buy viagra online Paroxetina E Alcool Achat Amoxicillin Pharmacie Gracieux Ans
Buying Generic On Line Zentel Ups Overnight Shipping Ou Acheter Cialis En Ligne Forum Buy Metformin Medicine buy viagra online Propecia 1mg Prix Jenerik Priligy

#10 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 23/10/2017, 12:16

Viagra Tunisie Vente viagra Viagra Jovenes Celis Pills
Levitra 20mg Canada Meds Online Pharmacy viagra online prescription Propecia Diabetes Medication
Viagra For Women 2013 Tadacip viagra isotretinoin direct Buy Amoxicillin On Line

#11 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 02/11/2017, 21:58

Isotretinoin Skin Health Cialis 5mg Wirkstoff Je Voulez Durer Plus Longtemps generic cialis Keflex And Definition
Viagra Generico 6x100mg Como Conseguir Viagra En Madrid where to purchase low cost levitra Cefixime Over The Counter Viagra 100mg Filmtabletten Beipackzettel
Tadalis Sx Soft Discount Retail viagra Cephalexin 500mg Dosage Ingredients Amoxicillin




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq