Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Cruzamento de Dados

Pessoal, será que alguém consegue dar uma luz?

Estou com a seguinte situação: tenho uma tabela com os emails e o pais de cada email e uma outra tabela com todos os emails que foram abertos.

Como eu consigo cruzar esses dados no mysql?

por exemplo descobrir de qual país os emails foram abertos sendo que são duas tabelas diferentes.

Apenas para exemplificar mais uma vez: tenho uma tabela (todos_emails) com os campos email_todos e pais_todos esses campos já estão preenchidos. Tenho uma outra tabela (abertos) com todos os e-mails que foram abertos daquela outra tabela, porém preciso puxar o país correspondente de cada e-mail que abriu. estes países estão na tabela todos_emails.

Alguém conseguiria dar uma ajuda?

Abraços!

2 respostas

Supondo que a sua estrutura de tabelas seja esta:

Tabela todos_emails - email_todos - pais_todos

Tabela abertos - email_aberto

Você poderia fazer a seguinte consulta:

SELECT email_aberto, pais_todos from todos_emails, abertos where email_todos = email_aberto
solução!

Daniel, consegui resolver o problema de uma forma diferente, Valeu pelo feedback. Vou explicar minha resolução caso alguém curta conhecer um pouco mais.

Eu tinha a seguinte situação, duas bases: a primeira tinha uma coluna com todos os emails e na outra uma coluna país, ou seja, cada email de usuario tinha o país dele ao lado.

A segunda base tinha apenas os emails que abriram as news.

Meu raciocínio foi o seguinte: já que todos os emails da base que abriram também estão na primeira base eu adicionei uma coluna a mais na primeira base geral "total_status" fiz um select na base que abriu o email , joguei o resultado em arrays e listei dentro de um form com um botão de "Cruzar dados".

Aí fiz uma verificação, se os emails que eu enviei pro banco através do formulário já existirem na primeira base(Nesse caso eu sei que existem, pois a primeira base é a base geral) ele faz um update na coluna status para o valor 1, vale lembrar que por padrão coloquei a coluna status com o valor 0 como default.

Ou seja, toda vez que envio o formulário, ele verifica se os emails enviados já existem no banco, se existirem ele altera a coluna status para 1.

Depois basta eu fazer um select

select * from total_emails where total_status = '1';

Deste modo o banco me retorna todos os usuários com o status 1, ou seja, os emails que abriram os emails.

Abraços Galera!