@Bruno_23
Amigo, essa deu trabalho hem!!
O Mysql não suporta alguns funções que outros banco de dados suportam (rank(), full outer join e etc.)
Tive que trabalha com tabelas temporárias o resultado foi este:
ATENÇÃO:
Lembre-se sempre que pelo fato de não ter a função full outer, você terá sempre que colocar o join em função da tabela com a maior quantidade de registros. Neste exemplo foi a de professor.
QUERY:
CREATE TEMPORARY TABLE CURSO.PROF_TEMP
SELECT
PROFESSOR.COD_PROF AS IDENT_PROFESSOR
, PROFESSOR.NOME AS NOME_PROFESSOR
, @CURRANK := @CURRANK + 1 AS IDENTIFICADOR_PROFESSOR
FROM
CURSO.PROFESSOR PROFESSOR, (SELECT @CURRANK := 0) R
WHERE
CIDADE = 'SAO PAULO';
CREATE TEMPORARY TABLE CURSO.ALUNO_TEMP
SELECT
ALUNO.RA AS IDENT_ALUNO
, ALUNO.NOME AS NOME_ALUNO
, @CURRANK := @CURRANK + 1 AS IDENTIFICADOR_ALUNO
FROM
CURSO.ALUNO ALUNO, (SELECT @CURRANK := 0) R
WHERE
ALUNO.CIDADE = 'SAO PAULO';
SELECT
CASE WHEN IDENT_ALUNO IS NULL THEN ' ' ELSE IDENT_ALUNO END AS IDENT_ALUNO
,CASE WHEN NOME_ALUNO IS NULL THEN ' ' ELSE NOME_ALUNO END AS NOME_ALUNO
,CASE WHEN IDENT_PROFESSOR IS NULL THEN ' ' ELSE IDENT_PROFESSOR END AS IDENT_PROFESSOR
,CASE WHEN NOME_PROFESSOR IS NULL THEN ' ' ELSE NOME_PROFESSOR END AS NOME_PROFESSOR
FROM ALUNO_TEMP
RIGHT JOIN PROF_TEMP
ON IDENTIFICADOR_ALUNO=IDENTIFICADOR_PROFESSOR;
--SELECT * FROM ALUNO_TEMP;
--SELECT * FROM PROF_TEMP;
--DROP TABLE CURSO.PROF_TEMP;
--DROP TABLE CURSO.ALUNO_TEMP;
A BASE DE DADOS CRIADA:
CREATE SCHEMA CURSO;
CREATE TABLE CURSO.ALUNO(
RA INTEGER,
NOME VARCHAR(200),
ENDERECO VARCHAR(200),
CIDADE VARCHAR(200));
CREATE TABLE CURSO.PROFESSOR(
COD_PROF INTEGER,
NOME VARCHAR(200),
ENDERECO VARCHAR(200),
CIDADE VARCHAR(200));
SELECT * FROM CURSO.ALUNO;
SELECT * FROM CURSO.PROFESSOR;
--TRUNCATE TABLE CURSO.PROFESSOR;
--TRUNCATE TABLE CURSO.ALUNO;
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(1,'FELIPE','RUA MATARARA','SAO PAULO');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(2,'DAVRA','RUA SAO JOAO','RIO DE JANEIRO');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(3,'JHON','RUA JOANA DARK','SAO PAULO');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(4,'CARLOS','RUA JESUS DE NAZARE','ACRE');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(5,'MARIA','AVENRAA DOS PASSOS','AMAZONAS');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(6,'JOANA','AVENRAA DO CARMO','RIO GRANDE DO SUL');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(7,'JOAQUIM','RUA JOAO BRASIL','SAO PAULO');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(8,'LUISA','RUA LILIAN LEMOS MERCADETTE','ESPIRITO SANTO');
INSERT INTO CURSO.ALUNO (RA, NOME, ENDERECO, CIDADE) VALUES(9,'JOYCE','RUA AMAZONAS','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(1,'JOSE','RUA PIAUI','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(2,'JOAO','RUA SAO JOAO','RIO DE JANEIRO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(3,'MARIA','RUA SAO PAULO','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(4,'JESUS','RUA RIO DE JANEIRO','ACRE');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(5,'MADALENA','AVENIDA OSWALDO CRUZ','AMAZONAS');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(6,'JONATHAN','AVENIDA NITEROI','RIO GRANDE DO SUL');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(7,'JUDAS','RUA SAO GONCALO','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(8,'PAULO','RUA RIO BRANCO','ESPIRITO SANTO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(10,'PEDRO','RUA NILO PECANHA','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(11,'ANDRE','RUA SETE DE SETEMBRO','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(12,'BARTOLOMEU','RUA PRIMEIRO DE JANEIRO','PARA');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(13,'FELIPE','RUA 21 DE JULHO','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(14,'TOME','RUA TRINTA E UM DE DEZEMBRO','GOIAS');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(15,'SIMAO','RUA BOLSONARO','AMAPA');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(16,'TIAGO MAIOR','RUA DR ENEAS','SAO PAULO');
INSERT INTO CURSO.PROFESSOR (COD_PROF, NOME, ENDERECO, CIDADE) VALUES(17,'TIAGO MENOR','RUA CUTURUVI','ALAGOAS');