Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou fazendo um select em 2 tabelas innodb pai e filho:
select * from pai, filho where codigo = 2
resultado pai 2 e filho do pai 1
codigo | nome | filho_codigo | chave_pai | filho_nome
2 pedro 1 1 marcos
se eu fizer uma consulta relacionando as chaves estrangeiras:
SELECT * FROM pai,filho WHERE codigo = 2 and codigo = chave_pai
o resultado é:
O MySQL retornou um conjunto vazio (ex. zero registros). (Consulta levou 0.0003 segundos)
como fazer para ter um retorno de somente o pai, com as colunas de filho zeradas?
--
-- Estrutura para tabela pai
--
CREATE TABLE IF NOT EXISTS `pai` (
`codigo` int(8) NOT NULL AUTO_INCREMENT,
`nome` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
--
-- Fazendo dump de dados para tabela pai
--
INSERT INTO pai (codigo, nome) VALUES
(1, 'joão'),
(2, 'pedro');
--
-- Estrutura para tabela filho
--
CREATE TABLE IF NOT EXISTS `filho` (
`filho_codigo` int(8) NOT NULL AUTO_INCREMENT,
`chave_pai` int(8) NOT NULL,
`filho_nome` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`filho_codigo`,`chave_pai`),
KEY `pai_filho` (`chave_pai`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
--
-- Fazendo dump de dados para tabela filho
--
INSERT INTO `filho` (`filho_codigo`, `chave_pai`, `filho_nome`) VALUES
(1, 1, 'marcos');
--
-- Restrições para dumps de tabelas
--
--
-- Restrições para tabelas filho
--
ALTER TABLE `filho`
ADD CONSTRAINT `pai_filho` FOREIGN KEY (`chave_pai`) REFERENCES `pai` (`codigo`) ON DELETE CASCADE ON UPDATE CASCADE;Carregando comentários...