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

(Resolvido) Problemas no Uso do Join


Parenti

Pergunta

Então, quero gerar a tabela tb_lista com o conteúdo das tabelas tb_cantor e tb_musicas

tb_cantor //nome da tabela

id_cantor: auto_increment

cat_cantor_cantor: zeze-di-camargo

tb_musicas //nome da tabela

id_cantor: auto_increment

cat_cantor: zeze-dicamargo

tb_lista //nome da tabela

id: auto_increment

id_musicas: 1 //esse valor vem do id da tb_musicas

id_cantor: 10 //esse valor vem da id da tb_cantor

Preciso ver se o "WHERE cat_cantor_cantor = cat_cantor"

se for inserir esse conteúdo da tabela tb_lista

Para isso eu consegui fazer isso (eu uso o ubuntu, e digito esses comandos no shell do mysql):

SELECT * FROM `tb_cantor` a LEFT OUTER JOIN `tb_musicas` b ON (b.cat_cantor = a.cat_cantor_cantor), `tb_lista` c WHERE a.cat_cantor_cantor=b.cat_cantor;

O que me foi retornado:

Empty set (0.00 sec)

Desde já agradeço...

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Parenti'

Se o que você quer é inserir o conteudo da pesquisa em uma tabela então você precisa combinar o insert com o select assim:

INSERT INTO `tb_lista`(<lista de campos>)
SELECT <lista de campos> 
FROM `tb_cantor` a 
LEFT OUTER JOIN `tb_musicas` b ON (b.cat_cantor = a.cat_cantor_cantor) 
WHERE a.cat_cantor_cantor=b.cat_cantor;

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'Parenti'

Se o que você quer é inserir o conteudo da pesquisa em uma tabela então você precisa combinar o insert com o select assim:

INSERT INTO `tb_lista`(<lista de campos>)
  SELECT <lista de campos> 
  FROM `tb_cantor` a 
  LEFT OUTER JOIN `tb_musicas` b ON (b.cat_cantor = a.cat_cantor_cantor) 
  WHERE a.cat_cantor_cantor=b.cat_cantor;

Olá Denis, valeu mesmo pela força, só esquici de falar:

tipo fazer a nova tb_lista (para eu saber qual musica "pertence" a qual cantor)

Problema: Quero inserir no tb_lista

id_cantor, id (que no caso é da tabela tb_musicas)

1,2

1,3

1,10

2,1

2,11

3,12

3,13

3,4

4,9

4,25

4,26

Eu fiz assim:

INSERT INTO `tb_lista`(id_cantor, id_musicas) SELECT id_cantor, cat_cantor_cantor, id, cat_cantor FROM `tb_cantor` a LEFT OUTER JOIN `tb_musicas` b ON (b.cat_cantor = a.cat_cantor_cantor) WHERE a.cat_cantor_cantor=b.cat_cantor;

E o obtido foi:

ERROR 1136 (21S01): Column count doesn't match value count at row 1

Por enquanto valeu pela ajuda...

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

  • 0

Valeu Denis Courcy!

Consegui!!!

INSERT INTO `tb_lista`(id_cantor, id_musicas) SELECT id_cantor, id FROM `tb_cantor` a LEFT OUTER JOIN `tb_musicas` b ON (a.cat_cantor_cantor = b.cat_cantor)WHERE a.cat_cantor_cantor = b.cat_cantor;

Essa foi minha solução....

Tudo de bom..

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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