Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Dúvida em INNER JOIN


Heitor Glöckner

Pergunta

Olá, estou tentando fazer uma consulta utilizando 4 tabelas diferentes, minha tabela é a seguinte:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

CREATE TABLE IF NOT EXISTS `clientes` (
  `cli_codigo` int(11) NOT NULL AUTO_INCREMENT,
  `cli_nome` varchar(50) DEFAULT NULL,
  `cli_endereco` varchar(60) DEFAULT NULL,
  `cli_cidade` varchar(50) DEFAULT NULL,
  `cli_fone` varchar(10) DEFAULT NULL,
  `cli_cel` varchar(10) DEFAULT NULL,
  `cli_cep` varchar(9) DEFAULT NULL,
  `cli_cpf_cnpj` varchar(25) DEFAULT NULL,
  `cli_ci` int(11) DEFAULT NULL,
  `cli_email` varchar(100) DEFAULT NULL,
  `cli_empresa` varchar(70) DEFAULT NULL,
  PRIMARY KEY (`cli_codigo`),
  KEY `cli_cep` (`cli_cep`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10;

INSERT INTO `clientes` (`cli_codigo`, `cli_nome`, `cli_endereco`, `cli_cidade`, `cli_fone`, `cli_cel`, `cli_cep`, `cli_cpf_cnpj`, `cli_ci`, `cli_email`, `cli_empresa`) VALUES
(8, 'aaaa', 'ssss', 'rrrr', NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(9, 'rrrr', 'eeee', 'wwwww', NULL, NULL, NULL, NULL, NULL, NULL, NULL);

CREATE TABLE IF NOT EXISTS `decoracao` (
  `deco_codigo` int(11) NOT NULL AUTO_INCREMENT,
  `deco_descricao` varchar(130) DEFAULT NULL,
  `deco_quant` int(11) DEFAULT NULL,
  `deco_fantasia` varchar(100) DEFAULT NULL,
  `deco_fornecedor` varchar(130) DEFAULT NULL,
  `deco_cod_prod` varchar(10) DEFAULT NULL,
  `deco_val_unitario` decimal(19,4) DEFAULT NULL,
  `deco_val_reposicao` decimal(19,4) DEFAULT NULL,
  PRIMARY KEY (`deco_codigo`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=379;


INSERT INTO `decoracao` (`deco_codigo`, `deco_descricao`, `deco_quant`, `deco_fantasia`, `deco_fornecedor`, `deco_cod_prod`, `deco_val_unitario`, `deco_val_reposicao`) VALUES
(192, 'Mangas p/ floreira  ', 0, 'Apólo', NULL, '357', '4.0000', '25.0000'),
(194, 'Vaso de vidro 30 alt./20 dm', 8, 'Aspiral', 'Fábrica de Vidros Raiar da Aurora', '180', '3.0000', '26.0000'),
(195, 'Vaso de vidro oval', 0, 'Oriental m.', 'Fábrica de Vidros Raiar da Aurora', '283', '4.0000', '36.5000'),
(196, 'Taça de vidro gigante  (rachada) o pé ', 0, 'Curitiba', 'Fábrica de Vidros Raiar da Aurora', '133', '4.5000', '59.8000'),
(198, 'Luminária de cera cor creme G.', 0, 'Cone', ' Arte em Vela', NULL, '4.0000', '30.0000');

CREATE TABLE IF NOT EXISTS `devolucao` (
  `dev_codigo` int(11) NOT NULL AUTO_INCREMENT,
  `dev_cliente` int(11) DEFAULT NULL,
  `dev_decoracao` int(11) DEFAULT NULL,
  `dev_louca` int(11) DEFAULT NULL,
  `dev_data` datetime DEFAULT NULL,
  `dev_baixa` int(11) DEFAULT NULL,
  PRIMARY KEY (`dev_codigo`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=27;

INSERT INTO `devolucao` (`dev_codigo`, `dev_cliente`, `dev_decoracao`, `dev_louca`, `dev_data`, `dev_baixa`) VALUES
(13, 8, NULL, 5, '2010-05-04 00:00:00', 1),
(26, 8, 198, NULL, '2010-05-11 16:48:53', 0),
(25, 9, 194, NULL, '2010-05-10 16:48:35', 2);

CREATE TABLE IF NOT EXISTS `loucas` (
  `lou_codigo` int(11) NOT NULL AUTO_INCREMENT,
  `lou_descricao` varchar(100) DEFAULT NULL,
  `lou_quantidade` int(11) DEFAULT NULL,
  `lou_linha` varchar(70) DEFAULT NULL,
  `lou_fornecedor` varchar(50) DEFAULT NULL,
  `lou_cod_prod` varchar(30) DEFAULT NULL,
  `lou_medida` varchar(7) DEFAULT NULL,
  `lou_valor` decimal(19,4) DEFAULT NULL,
  `lou_reposicao` decimal(19,4) DEFAULT NULL,
  PRIMARY KEY (`lou_codigo`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=431;

INSERT INTO `loucas` (`lou_codigo`, `lou_descricao`, `lou_quantidade`, `lou_linha`, `lou_fornecedor`, `lou_cod_prod`, `lou_medida`, `lou_valor`, `lou_reposicao`) VALUES
(5, ' Açucareiro de PRATA c/ 1 colher (rep. 8,00)', 0, 'liso', 'Apólo', '533', 'Unidade', '10.0000', '80.0000'),
(7, 'Açucareiro de porcelana branca', 0, 'Pomerode', 'Schmidt', NULL, NULL, '3.0000', '25.0000'),
(8, '        "        "       "          "     lisa', 0, NULL, '"', NULL, NULL, '2.0000', '18.0000'),
(9, 'Base de Prata e espelho p/ bolo12cm alt. 45 cm diâm. ', 0, ' ', 'Apólo', '250', NULL, '40.0000', '474.0000');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
O problema é que quando faço a seguinte consulta, ele não mostra nenhum resultado:
SELECT c.cli_nome, dc.deco_descricao, l.lou_descricao, dv.dev_data, dv.dev_baixa FROM devolucao AS dv INNER JOIN clientes AS c ON c.cli_codigo = dv.dev_cliente INNER JOIN decoracao AS dc ON dc.deco_codigo = dv.dev_decoracao INNER JOIN loucas AS l ON l.lou_codigo = dv.dev_louca

Eu queria que ele resultasse em algo como:

cli_nome | ------- deco_descricao ------ | --------------- lou_descricao ------------------ | dev_data | dev_baixa

-- aaaa - | -------------------------------- | Açucareiro de PRATA c/ 1 colher (rep. 8,00) | ---- 1 --- | 2010-05-04 00:00:00

-- rrrr --- | Vaso de vidro 30 alt./20 dm | -------------------------------------------------- | ---- 2 --- | 2010-05-10 16:48:35

E assim por diante ... Espero ter sido claro...

Qualquer dúvida é só postar !

Desde já, muito Obrigado !

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Heitor Glöckner'

Modifiquei sua consulta para

SELECT c.cli_nome, dc.deco_descricao, l.lou_descricao, dv.dev_data, dv.dev_baixa 
FROM devolucao dv 
INNER JOIN clientes c ON c.cli_codigo = dv.dev_cliente 
INNER JOIN decoracao dc ON dc.deco_codigo = dv.dev_decoracao 
LEFT JOIN loucas l ON l.lou_codigo = dv.dev_louca;

e vi que não há referencias em loucas que combine com decoracao para clientes e devolucao

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...