Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hyperpixel

problema com tabela dinamica

Recommended Posts

TENHO 2 TABELAS RELACIONADAS

 

UMA DE CONTROLE

tab_acesso

 

-- phpMyAdmin SQL Dump

-- version 2.6.3-pl1

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Ago 24, 2008 as 02:14 AM

-- Versão do Servidor: 3.23.47

-- Versão do PHP: 4.1.1

--

-- Banco de Dados: `TESTE`

--

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `tab_acesso`

--

 

CREATE TABLE `tab_acesso` (

`id_cliente` int(6) unsigned zerofill NOT NULL default '000000',

`data_cadastro` datetime NOT NULL default '0000-00-00 00:00:00',

`login` varchar(120) NOT NULL default '',

PRIMARY KEY (`id_cliente`)

) TYPE=MyISAM;

 

--

-- Extraindo dados da tabela `tab_acesso`

--

 

INSERT INTO `tab_acesso` VALUES (000001, '2007-12-03 15:20:00', 'hhhhh');

INSERT INTO `tab_acesso` VALUES (000002, '2007-11-30 15:20:00', 'nonono');

INSERT INTO `tab_acesso` VALUES (000003, '2007-11-30 15:22:00', 'npnpnpnp');

INSERT INTO `tab_acesso` VALUES (000004, '2007-11-30 15:25:00', 'ggggggg');

INSERT INTO `tab_acesso` VALUES (000005, '2007-12-05 19:50:46', 'eeeee');

 

e outra

 

 

tab_tel

 

-- phpMyAdmin SQL Dump

-- version 2.6.3-pl1

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Ago 24, 2008 as 02:12 AM

-- Versão do Servidor: 3.23.47

-- Versão do PHP: 4.1.1

--

-- Banco de Dados: `TESTE`

--

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `tab_tel`

--

 

CREATE TABLE `tab_tel` (

`id_cliente` int(6) unsigned zerofill NOT NULL default '000000',

`telefone` varchar(12) NOT NULL default ''

) TYPE=MyISAM;

 

--

-- Extraindo dados da tabela `tab_tel`

--

 

INSERT INTO `tab_tel` VALUES (000001, '11-39432400');

INSERT INTO `tab_tel` VALUES (000002, '25-37546546');

INSERT INTO `tab_tel` VALUES (000002, '25-95465466');

INSERT INTO `tab_tel` VALUES (000003, '32-36666666');

INSERT INTO `tab_tel` VALUES (000004, '12-95788768');

INSERT INTO `tab_tel` VALUES (000005, '12-44444444');

 

no caso na tab tel tem 2 telefones do id 000002 quando monto uma tabela dinamica com estes dados chamado por inner join se tem + que um telefone ele repete a linha ja usei distinct, left join, right join nao funcionou alguem sabe como resolvo

 

abaixo o inner join e a saidas

 

$query = ("SELECT
tab_acesso.data_cadastro,
tab_acesso.id_cliente,
tab_acesso.login,
tab_tel.id_cliente,
tab_tel.telefone 
FROM tab_acesso 
INNER JOIN  tab_tel
ON tab_tel.id_cliente = tab_acesso.id_cliente
WHERE tab_acesso.id_cliente ='000002' 
 ORDER BY tab_acesso.data_cadastro ASC LIMIT 1");

a saida seria

 

 

id_cliente data_cadastro login telefone

000001 | '2007-12-03 15:20:00 | hhhhh | 11-39432400

000002 | '2007-11-30 15:20:00 | nonono | 25-37546546

000002 | '2007-11-30 15:20:00 | nonono | 25-95465466 <-erro não queria que duplicasse a mesma linha duplicou devido a o segundo nuemro de telefone

000003 | '2007-11-30 15:22:00 | npnpnpnp | 32-36666666

000004 | '2007-11-30 15:25:00 | ggggggg | 12-95788768

000005 | '2007-12-05 19:50:46 | eeeee | 12-44444444

 

o certo seria

 

id_cliente data_cadastro login telefone

000001 | '2007-12-03 15:20:00 | hhhhh | 11-39432400

000002 | '2007-11-30 15:20:00 | nonono | 25-37546546

000003 | '2007-11-30 15:22:00 | npnpnpnp | 32-36666666

000004 | '2007-11-30 15:25:00 | ggggggg | 12-95788768

000005 | '2007-12-05 19:50:46 | eeeee | 12-44444444

 

desde ja grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

já que você não quer que sejam exibidos mais de 1 registro por cliente (neste caso o DISTINCT não vai funcionar pq o campo telefone está diferenciando), utilize o GROUP BY...

SELECT

tab_acesso.data_cadastro,

tab_acesso.id_cliente,

tab_acesso.login,

tab_tel.id_cliente,

tab_tel.telefone

FROM tab_acesso

INNER JOIN tab_tel

ON tab_tel.id_cliente = tab_acesso.id_cliente

WHERE tab_acesso.id_cliente ='000002'

GROUP BY tab_acesso.id_cliente

ORDER BY tab_acesso.data_cadastro ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

funfou perfeitamente

solução simples

a sintaxe de agrupar os dados pela tabela, é que to pegando a lógica e lógica de banco é complicada

valeu cara

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.