· 10 years ago · Jul 06, 2016, 12:36 AM
1CREATE TABLE IF NOT EXISTS `clientes` (
2 `idclientes` INT UNSIGNED NOT NULL AUTO_INCREMENT,
3 `nome` VARCHAR(45) NULL,
4 PRIMARY KEY (`idclientes`))
5ENGINE = InnoDB;
6
7CREATE TABLE IF NOT EXISTS `emails` (
8 `idemails` INT UNSIGNED NOT NULL AUTO_INCREMENT,
9 `email` VARCHAR(80) NULL,
10 `clientes_idclientes` INT UNSIGNED NOT NULL,
11 PRIMARY KEY (`idemails`),
12 INDEX `fk_emails_clientes_idx` (`clientes_idclientes` ASC),
13 CONSTRAINT `fk_emails_clientes`
14 FOREIGN KEY (`clientes_idclientes`)
15 REFERENCES `clientes` (`idclientes`)
16 ON DELETE NO ACTION
17 ON UPDATE NO ACTION)
18ENGINE = InnoDB;
19
20INSERT INTO `clientes` (`nome`) VALUES
21('João'),
22('Maria'),
23('Raul');
24
25INSERT INTO `emails` (`idemails`, `email`, `clientes_idclientes`) VALUES
26('teste@teste.com.br', 1),
27('teste1@teste.com.br', 1),
28('teste2@teste.com.br', 1),
29('maria1@teste.com.br', 2),
30('maria2@teste.com.br', 2);
31
32SELECT
33 `clientes`.nome AS CLIENTE_NOME,
34 `emails`.email AS CLIENTE_EMAIL
35FROM
36 `clientes` LEFT JOIN `emails` ON `emails`.clientes_idclientes = `clientes`.idclientes
37WHERE 1;
38
39CLIENTE_NOME | CLIENTE_EMAIL
40==================================
41João | teste@teste.com.br
42João | teste1@teste.com.br
43João | teste2@teste.com.br
44Maria | maria1@teste.com.br
45Maria | maria2@teste.com.br
46Raul | NULL
47
48SELECT
49 `clientes`.nome AS CLIENTE_NOME,
50 `emails`.email AS CLIENTE_EMAIL
51FROM
52 `clientes` INNER JOIN `emails` ON `emails`.clientes_idclientes = `clientes`.idclientes
53WHERE 1;
54
55CLIENTE_NOME | CLIENTE_EMAIL
56==================================
57João | teste@teste.com.br
58João | teste1@teste.com.br
59João | teste2@teste.com.br
60Maria | maria1@teste.com.br
61Maria | maria2@teste.com.br