KUROL3 3 Denunciar post Postado Outubro 15, 2007 Olha que estranho que aconteceu... usei SELECT * FROM musicas M LEFT JOIN usuarios U ON U.id = M.quem_enviou ORDER BY M.cantor ASCfuncionow certinhoseguindo a mesma logica... fiz assimSELECT * FROM musicas M LEFT JOIN usuarios U ON (U.id = M.quem_enviou) LEFT JOIN fotos F ON (F.id_usuario = M.quem_enviou) ORDER BY M.cantor ASCo que eu queria era pegar os ids que existe da tabela usuario e fotos relacionados com a tabela musica..Deis dois F5 para atualizar a pagina... rsrss derrubou o meu servidor dedicado lá na locaweb.... rsrssSo lembrando que as tabelas contem os seguintes registros:Musicas 400Usuarios 20.000Fotos 9.000Parece que para cada laço da while ele esta rodando os 9.000 registros... como disse funcionow uma vez depois de mais de 20 segundos.. ai dei F5 caiu o servidor ou seja o MySql não abria mais novas conexoes..Abraço....Kurol3 Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 15, 2007 Opa, Na sua última consulta você escreveu isso: "Traga para mim, SGBD, do banco de dados <tal>, esses dados: quero todos as músicas, relacionadas ou não a um usuário e desse conjunto, que chamarei de A, em traga tudo que se relaciona ou não com o conjunto de fotos, B" ...ou seja, você trouxe 29.400 registros, dentre valores reais e nulos. Dependendo de como está ajustada sua banda de transferência na locaweb ou se o servidor MySQL estiver numa máquina com muitos compartilhamentos de memória, relamente cairá. Não por causa do MySQL, mas sim por causa da configiração do servidor. Qualquer dúvida, continue postando!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Outubro 16, 2007 então qual seria o select correto....... (dar 3 select?????) fazer issu ?? tabela 1 usuarios //nome da tabela id = 1, nome='marco aurélio', email='kurole@kurole.com' id = 2, nome='nayane', email='nayane@kurole.com' id = 3, nome='marcio', email='marcio@kurole.com' tabela 2 musicas //nome da tabela id = 1, cantor='ricardadao', estilo='to com sua muié' quem_enviou='' id = 2, cantor='da poutrona', estilo='seranejo' quem_enviou='' id = 3, cantor='zaza', estilo='cor sim cornao' quem_enviou='2' id = 4, cantor='maria', estilo='papai noel' quem_enviou='3' id = 5, cantor='josue', estilo='vai ou racha' quem_enviou='' tabela 3 fotos//nome da tabela id = 1, foto='sei_la.jpg', id_usuario='' id = 2, foto='sei_la2.jpg', id_usuario='' id = 3, foto='sei_la3.jpg', id_usuario='' id = 4, foto='sei_la4.jpg', id_usuario='2' id = 5, foto='sei_la5.jpg', id_usuario='3' eu queria que saisse assim todas as musicas o usuario relacionado com a tabela musica e as fotos relacionada com a tabelas de usuario que esta relacionada com a tabela musica.. bom acho que é issu... KUROLE Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 16, 2007 Já tentou fazer um INNER JOIN ou um LEFT JOIN com os campos: usuarios.id; musicas.quem_enviou; fotos.id_usuario; A consulta abaixo trará os resultados de todas as correspondências entre as tabelas: SELECT musicas.*, usuario.nome, fotos.foto FROM musicas AS a INNER JOIN usuarios AS b ON a.quem_enviou = b.id INNER JOIN fotos AS c ON b.id = c.id_usuario A consulta abaixo trará todos os registros, relacionados ou não: SELECT musicas.*, usuario.nome, fotos.foto FROM musicas AS a LEFT JOIN usuarios AS b ON a.quem_enviou = b.id LEFT JOIN fotos AS c ON b.id = c.id_usuario Qualquer dúvida, continue postando!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Outubro 16, 2007 Bom vou reformular minha pergunta do zero com os campos reais do banco................................ tabela mural // CREATE TABLE `mural` ( `id` int(250) NOT NULL auto_increment, `nome` varchar(250) NOT NULL default '', `usuario` varchar(250) NOT NULL default '', `id_cadastro` varchar(250) NOT NULL default '', `email` varchar(250) NOT NULL default '', `para` varchar(250) NOT NULL default '', `data` varchar(250) NOT NULL default '', `hora` varchar(250) NOT NULL default '', `msg` longtext NOT NULL, `ip` varchar(250) NOT NULL default '', `m_foto` varchar(250) NOT NULL default '', `bloqueia` varchar(250) NOT NULL default '', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3244; tabela de hinos // CREATE TABLE `HINOS` ( `id` int(250) NOT NULL auto_increment, `nome` varchar(250) NOT NULL default '', `nome_avulso` varchar(255) NOT NULL, `cd_nome` varchar(255) NOT NULL, `numero` varchar(250) NOT NULL default '', `comentario` mediumtext NOT NULL, `cantor` varchar(250) NOT NULL default '', `categoria` varchar(250) NOT NULL default '', `arquivo` varchar(250) NOT NULL default '',[b] [color="#8B0000"]`usuario` varchar(250) NOT NULL default '',[/color][/b] `mostra` varchar(250) NOT NULL default '', `download` int(250) NOT NULL default '0', `data` varchar(250) NOT NULL default '', `hora` varchar(250) NOT NULL default '', `tamanho` varchar(255) NOT NULL default '', `excluido` varchar(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7891; tabela de usuarios // CREATE TABLE `USR` ( `id` int(250) NOT NULL auto_increment, `nome` varchar(250) NOT NULL default '', `data` varchar(250) NOT NULL default '', `email` varchar(250) NOT NULL default '', `email2` varchar(250) NOT NULL default '', `foto` varchar(250) NOT NULL default '', `flog` varchar(250) NOT NULL default '', `radio` varchar(255) default NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17011; quano o usuario esta logado no meu site... ele consegue postar hinos... ok..... quando ele posta hino ta tabela de HINOS como você ve acima o campo usuario é preenchido com o id do USR e quando eu posto hino pela administracao o usuario.HINOS fica em branco... bom até ai tudo bem.. agora eu queria fazer o seguinte.. SELECIONAR O MURAL (todos os registros) na tabela do mural no campo usuario eu tenho os id.USR (dos usuarios) de todos os usuarios que postou. baseado nesses informacoes.. eu queria que: - Se o usuario que postou tivesse HINO (ou seja se na tabela de HINOS no campo usuario houvesse um id = ao usuario que postou no mural.. que selecione este registro... e tb se na tabela usuario (USR) fosse o mesmo id de quem postou no mural (selecione esse registro tb).. tentei as dus que você postou mas nao deu certo nao... Aguardo Marco....................... Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 16, 2007 KUROL,Você quer trazer os registros de hinos + usuário + mural, certo? Seria isso?... Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Outubro 16, 2007 quero trazer os tos registros do mural vinculado com os usuarios (que postaram) order by id desc sendo que para cada registro do mural que ouver Hinos na tabela de HINOS mostrar tb estou fazendo isso hj "SELECT M.nome as nome_mural, M.email as email_mural,M.*,U.flog, U.foto FROM mural M LEFT JOIN USR U ON (M.id_cadastro = U.id) and M.bloqueia = '' ORDER BY M.id DESC LIMIT $inicio, $reg_p_pag"while ($deus = @ mysql_fetch_assoc($result)){// depois em baixo $verifica_setemhino = @ mysql_query("select * from HINOS where usuario = '".$deus['id_cadastro']."'");if ( @ mysql_num_rows($verifica_setemhino) != 0){echo '<a title="Clique aqui e veja todos os meus hinos enviados" target="_top" href="inicio.php?email_acesso_mural='.$deus['id_cadastro'].'">Meus hinos enviados </a>';}}//fecha while..... Marco KUROLE Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 16, 2007 inner join... Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Outubro 16, 2007 Desculpe pela ignorancia mas INNER JOIN eu não entendi.. se possivel escreva o select..abracoKUROLE Compartilhar este post Link para o post Compartilhar em outros sites