Eu tenho 2 mesas
table1
emp type
tom 1
tom 2
table2
emp grade
tom a
tom b
tom c
Esperar retorno
emp type grade
tom 1 a
tom 2 b
tom c
a consulta parece correta, mas não totalmente correta
select table1.emp , table1.type, table2.emp, table2.grade
from table1
left join table2 on table1.emp = table2.emp
return
emp type grade
tom 1 a
tom 1 b
tom 1 c
tom 2 a
tom 2 b
tom 2 c
Você não respondeu à pergunta sobre o porquê
type
de1
matches witha
e2
goes tob
etc. Mas com base no seu exemplo, parece que você só quer combiná-los lexicograficamente. Supondo que isso seja verdade, esta é uma maneira de você conseguir seu exemplo de retorno esperado:Observe que isso pressupõe que você deseja todas as linhas de
table2
, mas apenas as linhas correspondentes detable1
.Além disso, você poderia obviamente selecionar diretamente de
_table2Sorted
e usar oGradeSortId
comotype
para uma consulta mais simples, neste caso específico. Mas isso também funciona se você tivesse um caso de uso mais complexo em que precisasse de outras colunas detable1
também.Sua chave
emp
tem várias linhas correspondentes para cada umaemp
emtable2
. O mecanismo não tem como saber dissoO que está retornando está correto. Para obter a resposta que você deseja, você pode adicionar o
type
campo atable2