-
No primeiro select retorna todos os 1.000 valores como 1, no segundo os 10.000 como 2, e o terceiro os 100.000 como 3.
Quando ele faz o union ele retorna apenas 3 linhas. (os 3 diferentes diferentes). Letra (a).
Agora....
Se fosse o union all traria todos os resultados: 1.000+10.000+1000.000
-
Não sei se estou errada,mas não retornaria a 1ª linha de T1,a 2ª de T2 e a 3ª de T3?
-
Como já foi dito na primeira retorna tudo 1, na segunda tudo 2 e na terceira tudo 3. O union elimina as repetições e assim, fica 1, 2, 3 linhas.
-
Na verdade, ao escrever "SELECT 1 FROM T1", você instrui o SGBD a ignorar os conteúdos das colunas dessa tabela, e retornar a constante 1 para cada uma das linhas existentes nela, ou seja 1.000 linhas, cada uma contendo o valor 1. O mesmo acontece para "SELECT 2 FROM T2": 10.000 linhas contendo uma única coluna com o valor 2. E assim também acontece para "SELECT 3 FROM T3": 100.000 linhas contendo o valor 3.
Ao aplicar a união dos resultados (UNION), apenas os valores únicos sao retornados: uma linha contendo 1, outra contendo 2, e a última contendo 3.
3 linhas, alternativa A
-
O problema é que a resposta depende de a tabela T1 possuir apenas valores 1, ou seja, 1000 valores "1"; a tabela T2 possuir apenas valores 2, ou seja, 10000 valores "2"; e a tabela T3 possuir apenas valores 3, ou seja, 100.000 valores "3"; o problema é que o comando da questão não informa isso.
Ai, fica complicado. Passivel de recurso, na minha opinião.