MySQL declaração única para mesclar duas tabelas

Tenho certeza de que isso já foi feito / respondido, mas não sei como esse tipo de ação é chamado e meu conhecimento de SQL é limitado.

Eu estou procurando por uma única instrução SQL para mesclar duas tabelas:

Tabela USER:

ID   hash
=========
1    abc
2    def
3    ghi

e a tabela USER_FIELD:

ID  user_id key        value
=============================
1   1       firstname  John
2   1       lastname   Doe
3   2       firstname  Justin
4   2       lastname   Case

Agora gostaria de saber como obtenho essa visão:

ID  hash  firstname   lastname
================================
1   abc   John        Doe

Então, se eu adicionar uma entrada addtional na tabela USER_FIELD com uma chave "email" recebo uma nova coluna no último resultado

Isso é possível apenas no MySQL ou eu tenho que ir e alterar o resultado em PHP?

Isso é mesmo um bom projeto de banco de dados ou devo largar isso com um diferente (qual deles?)

questionAnswers(5)

yourAnswerToTheQuestion