Olá amigos…
Preciso de uma query que traga os dados de várias tabelas em colunas separadas.
Exemplo:
tabela 1:
Total1
1
2
3
Tabela 2:
Total2
4
5
6
Preciso que a query me retorne:
Total1 | Total2
1 | 4
2 | 5
3 | 6
Tentei:
select * from tabela1
cross join
tabela2
Mas ele repete os valores dessa forma:
Total1 | Total2
1 | 4
2 | 4
3 | 4
1 | 5
2 | 5
3 | 5
1 | 6
2 | 6
3 | 6
Como fazer a união dessas tabelas de forma correta? (lembrando que não há relacionamento entre as tabelas).
Sem criar relacionamento não dá , o que você poderia fazer é gerar isso com stored procedure, mas como não há ordenação para as linhas os dados podem vir bagunçados.
Não entendi qual o erro…
Total1 | Total2
1 | 4
2 | 4
3 | 4
1 | 5
2 | 5
3 | 5
1 | 6
2 | 6
3 | 6
Você mandou ele trazer todo mundo.
Ou seja, na total 2 você deve para total1 ID 1 1,2,3,4,5,6
Ele sim vai trazer essa moçada aí.
Você vai ter que colocar where na sua consulta.
Rapaz, fiz esse SQL maluco no MySQL ai para testar e retornou do jeito que vc quer. Apenas criei a tb_a(valor int) e tb_b(valor in) e inseri 1, 2 e 3 na tb_a e 4, 5 e 6 na tb_b.
select a.valor a,
b.valor b
from (select @rownuma := @rownuma + 1 as id, valor from tb_a, (select @rownuma := 0) r) a,
(select @rownumb := @rownumb + 1 as id, valor from tb_b, (select @rownumb := 0) r)
b where a.id = b.id;
No Oracle vc possui a variável ROWNUM que facilita as coisas.
SELECT A.VALOR,
B.VALOR
FROM (SELECT ROWNUM ID, 'Valor A' VALOR FROM DUAL) A,
(SELECT ROWNUM ID, 'Valor B' VALOR FROM DUAL) B
WHERE A.ID = B.ID