Sql em várias tabelas pelo cpf

SQL

MySQL

10/01/2018

SELECT
func.nis,
func.nomef,
func.datanscf,
func.cpf,
graduacao.grauacademico,
graduacao.modalidadedecruso,
graduacao.instituicao,
graduacao.cpf,
lotacao.lotacao,
lotacao.niveldeensino,
lotacao.cargahoraria,
lotacao.cpf,
extensaoepos.cpf,
extensaoepos.nivel,
extensaoepos.paisext,
extensaoepos.instituicao,
FROM
func, graduacao, lotacao, extensaoepos
WHERE
(func.cpf = graduacao.cpf) and (graduacao.cpf = lotacao.cpf) and (lotacao.cpf = extensaoepos.cpf)

Essa sql me retorna exatamente o que quero n aordem que eu quero, ele e mostra a graduação, a lotação e a extensaepos do funcionario pelo cpf, a chave de ligação entre as tabelas e o cpf igual. mais a um problema ex:

se o funcoinario de cpf 999999 fez 3 graduações retorna assim.

Titulo -> nome cpf graduacao lotacao extensaepos
dados -> jose 999999 graduacao01 lotacao01 lotacao01
dados -> jose 999999 graduacao02
dados -> jose 999999 graduacao03


eu queria assim tudo em colunas sequencias. como abaixo

Titulo -> nome cpf graduacao graduacao graduacao lotacao extensaepos
dados -> jose 999999 graduacao01 graduacao02 graduacao03 lotacao01 extensaoepos01

Se tiver varias graduações e lotações e extensaoepos ficasem assim

Titulo -> nome cpf graduacao graduacao graduacao lotacao lotacao extensaepos extensaepos
dados -> jose 999999 graduacao01 graduacao02 graduacao03 lotacao01 lotacao02 extensaoepos01 extensaoepos02
Jose Junior

Jose Junior

Curtidas 0

Respostas

Alex William

Alex William

10/01/2018

O que você procura são "JOINS":

LEFT JOIN Command:
https://www.w3schools.com/sql/sql_join_left.asp


INNER JOIN Command:
https://www.w3schools.com/sql/sql_join_inner.asp

Um desses dois já deve te suprir no que você precisa, qualquer coisa só falar. :D
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

10/01/2018

tente algo assim (procure sobre group_concat):

SELECT
func.nis,
func.nomef,
func.datanscf,
func.cpf,
group_concat(graduacao.grauacademico separator '; '),
group_concat(lotacao.lotacao separator '; '),
group_concat(extensaoepos.nivel separator '; ')
FROM
func, graduacao, lotacao, extensaoepos
WHERE
(func.cpf = graduacao.cpf) and (graduacao.cpf = lotacao.cpf) and (lotacao.cpf = extensaoepos.cpf)
GOSTEI 0
POSTAR