aletres 0 Denunciar post Postado Outubro 16, 2007 Boa tarde. Por exemplo: TABELA JOGOS Id Nome Descrição Id_console TABELA CONSOLE Id Nome TABELA NOTÍCIAS Id Titulo Texto Id_jogo Quando a pessoa quer ver NOTÍCIAS DO PS3, como faço para ele listar as NOTÍCIAS do CONSOLE X que é do JOGO X ??? Sei fazer o JOIN simples, mas neste caso tenho dificuldades. Alguém pode me ajudar? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 16, 2007 Posta o que você já tentou fazer para que possamos lhe dar a dica. Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
aletres 0 Denunciar post Postado Outubro 17, 2007 Tenho o seguinte código, que hoje, consegui fazer funcionar: SELECT game_cad_n.*,game_cad_j.*,game_console.* FROM game_cad_j INNER JOIN game_cad_n ON game_cad_j.cad_j_id = game_cad_n.cad_n_cad_j_id INNER JOIN game_console ON game_cad_j.cad_j_id = game_console.console_id No caso que citei no outro Post, eu precisava consultar o banco da seguinte maneira: NOTÍCIAS -> JOGO -> CONSOLE Se o console da notícia for x, aparece na lista de jogos. O SELECT acima está correto ou há uma maneira mais correta de fazer? Pois acho que a consulta concentrou da seguinte maneira: NOTÍCIAS -> JOGO <- CONSOLE Se um dia eu precisar consultar 4 tabelas de uma vez, não tenho idéia de como fazer. Obrigado pela ajuda Wagner. Um abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Outubro 17, 2007 Imagine tabelas como se fossem conjuntos e os campos PK e FK sãp as ligações entre elas e algum elemento entre os conjuntos é comum, como ter COD_PRODUTO numa tabela de ITENS_DA_NOTA. Dado os conjuntos A, B, C, D, E, F, G, H, I e J, una-os com INNER, LEFT ou RIGHT JOIN: GRUPO A id nome GRUPO B id GRUPO C id GRUPO D id GRUPO E id GRUPO F id GRUPO G id GRUPO H id GRUPO I id GRUPO J id SELECT A.nome FROM A INNER JOIN B (ON A.id = B.id) INNER JOIN C (ON A.id = C.id) ... só isso!! Abração!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
aletres 0 Denunciar post Postado Outubro 17, 2007 Pois é, o código não funcionou perfeitamente.Não consigo imprimir na tela o Id ou Nome do console, ele está pegando o Id do jogo (mas a lista em sí, está ok). $resultadoN = mysql_query('SELECT game_cad_n.*,game_cad_j.*,game_console.* FROM game_cad_j INNER JOIN game_cad_n ON game_cad_j.cad_j_id = game_cad_n.cad_n_cad_j_id INNER JOIN game_console ON game_cad_j.cad_j_id = game_console.console_id WHERE cad_n_ativo = "s" AND cad_j_console LIKE "%,'.$pagina_console.',%" ORDER BY cad_n_data DESC LIMIT 0,15 ');if (preg_match(",".$console_id.",", $cad_j_console )) { echo('checked'); }if(!$resultadoN){ die("Erro na solicitação de query: " . mysql_error() . '<br>');}if(mysql_num_rows($resultadoN) == 0){ echo("<tr><td><font color=red>Não há notícias até o momento.</font></td></tr>");} else { while($row = mysql_fetch_array($resultadoN)){ $cad_n_id = $row['cad_n_id']; $cad_n_titulo = $row['cad_n_titulo']; $cad_n_data = $row['cad_n_data']; $console_nome = $row['console_nome']; }}O que será que está faltando???Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
aletres 0 Denunciar post Postado Outubro 17, 2007 Ele pega o nº do jogo e exibe Nome do jogo - World in Conflict promete ser o melhor game de 2007 em vez de Nome do console - World in Conflict promete ser o melhor game de 2007 Compartilhar este post Link para o post Compartilhar em outros sites
aletres 0 Denunciar post Postado Novembro 7, 2007 Alguém sabe dizer??? Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Novembro 7, 2007 Ao invés de fazer: SELECT game_cad_n.*,game_cad_j.*,game_console.* Cite os campos das tabelas que você irá precisar no lugar do '*'. Compartilhar este post Link para o post Compartilhar em outros sites