Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao exibir resultado de duas tabelas unidas


afranpi

Pergunta

Voltei pessoal! Mais uma dúvida cruel!!!:(:(:(

Tenho duas tabelas "planos" e "clienteplanos"

** Sendo que a tabela "planos" e tabela "clienteplanos" tem o campo "id_plano" em comum.

Na tabela "planos" tenho cadastrado:

id_plano--------------nome

1----------------conexão 300

2----------------conexão 400

3----------------conexão 500

4----------------conexão 600

5----------------conexão 700

Na tabela "clienteplanos" tenho cadastrado:

id_pc-------id_plano---------id--------------habili

1-----------------1-------------50---------------s

2-----------------3-------------50---------------s

Fiz o select assim exibindo apenas os dados e os planos cadastrados do id X que no exemplo seria o 50: resultado = 2

"select planos.id_plano,planos.nome,planos.valor,clienteplanos.id_pc,clienteplanos.id,clienteplanos.id_plano,clienteplanos.habili from planos,clienteplanos WHERE planos.id_plano=clienteplanos.id_plano AND id='$id_' order by id_pc"

Até aqui beleza!!!:):):)

O PROBLEMA!

Mas agora vem a bomba...

Tenho que exibir todos os planos da tabela "planos" menos os cadastrados na tabela clienteplanos!!!:(:(:(

Como faço esse select amigos???

Se alguém se habilitar estarei por aqui no aguardo!!! :(

Editado por afranpi
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Se o seu mysql suportar subquery você pode fazer algo do tipo.

SELECT * FROM planos WHERE id_plano NOT IN (SELECT DISTINCT(id_plano) FROM clienteplanos)

Na subquery (SELECT DISTINCT....) eu pego todos os id_plano cadastrado, o NOT IN vai fazer com a query principal só traga id_plano que não esteja na subquery...

Link para o comentário
Compartilhar em outros sites

  • 0
Se o seu mysql suportar subquery você pode fazer algo do tipo.

SELECT * FROM planos WHERE id_plano NOT IN (SELECT DISTINCT(id_plano) FROM clienteplanos)
Na subquery (SELECT DISTINCT....) eu pego todos os id_plano cadastrado, o NOT IN vai fazer com a query principal só traga id_plano que não esteja na subquery...
Humm! não funcionou!! mas mesmo assim muito obrigado pela dica!! fiz assim como falou olha só:
<?
$p="SELECT * FROM planos WHERE id_plano NOT IN (SELECT DISTINCT(id_plano) FROM clienteplanos) ";
$p=mysql_query($p);
while($r=mysql_fetch_array($p))
{
echo "$r[id_plano]";
}
?>

Ocorreu o erro: :( :( :( :( :(

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/...... line 178

Editado por ESerra
Utilize as tags [code] e [/code]
Link para o comentário
Compartilhar em outros sites

  • 0

Esse é o erro q está dando:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DISTINCT(id_plano) FROM clienteplanos)' at line 1

:( :( :(

Editado por afranpi
Link para o comentário
Compartilhar em outros sites

  • 0

$p="SELECT * FROM planos WHERE id_plano NOT IN ('SELECT DISTINCT(id_plano) FROM clienteplanos') ";
ou
$p="SELECT * FROM planos WHERE id_plano NOT IN (\"SELECT DISTINCT(id_plano) FROM clienteplanos\") ";

Tente com as aspas que o Edgar falou.

Se o 1º não funcionar tente o segundo.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

o primeiro já o fiz e não deu certo! mas vou verificar a sendo opção!!

Vamos ver!!

Obriago por postar!

Já volto colocando o resultado!

Olha amigo, tanto assim:

$sqll="SELECT * FROM planos, nome WHERE id_plano NOT IN ('SELECT DISTINCT(id_plano) FROM clienteplanos') ";

$execc = mysql_query($sqll) OR DIE(mysql_error());

while($linha2 = mysql_fetch_array($execc))

{

$id_plano = $linha2['id_plano'];

$nome = $linha2['nome'];

echo "$id_plano : $nome<br>";

}

quanto assim:

$sqll=SELECT * FROM planos, nome WHERE id_plano NOT IN (\"SELECT DISTINCT(id_plano) FROM clienteplanos\") ";

$execc = mysql_query($sqll) OR DIE(mysql_error());

while($linha2 = mysql_fetch_array($execc))

{

$id_plano = $linha2['id_plano];

$nome = $linha2['nome'];

echo "$id_plano : $nome<br>";

}

ele me mostra todos os resultados da tabela planos!!

estranho isso!

Sendo que o certo teria que me mostrar somente os id_plano que não estão cadastrados na tabela clienteplanos!! :(:(:(

Editado por afranpi
Link para o comentário
Compartilhar em outros sites

  • 0

Consegui resolver pessoal com o seguinte select:

$sql = "select distinct (p.id_plano), p.nome, cp.habili

from planos p LEFT JOIN clienteplanos cp ON p.id_plano = cp.id_plano AND id='$id_cliente'";

$exec=mysql_query($sql);

while($r=mysql_fetch_array($exec))

{

}

Obrigado pela atenção de todos!! :) :)

Editado por afranpi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...