Em um servidor MySQL, há um banco ‘teste’, inicialmente sem tabelas. Executa-se, nesse banco, a sequência de comandos SQL a seguir.
CREATE TABLE CONTATO (Contato_ID int NOT NULL AUTO_INCREMENT, nome varchar(200), email varchar(200), primary key(Contato_ID));
CREATE TABLE TELEFONE(Telefone_ID int NOT NULL auto_increment primary key, contato_id int, telefone varchar(100) NOT NULL, foreign key(Contato_ID) references Contato(Contato_ID)) ;
INSERT INTO CONTATO (NOME, EMAIL) VALUES ('Antonio', 'antonio@email.com.br');
INSERT INTO CONTATO (NOME, EMAIL) VALUES ('Jose', 'jose@email.com.br');
INSERT INTO CONTATO (NOME, EMAIL) VALUES ('Maria', NULL);
INSERT INTO CONTATO (NOME, EMAIL) VALUES ('Alfredo', 'alfredo@email.com.br');
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (1, '1234-1111');
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (1, '1234-2222');
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (2, '1234-3333');
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (2, NULL);
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (3, '1234-4444');
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (3, NULL);
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (4, '1234-5555');
INSERT INTO TELEFONE (CONTATO_ID,TELEFONE) VALUES (4, '1234-6666');
A quantidade de linhas retornadas pela consulta
SELECT * FROM CONTATO,TELEFONE WHERE CONTATO.CONTATO_ID = TELEFONE.CONTATO_ID AND CONTATO.EMAIL IS NULL; é