Estou trabalhando com Access e tive de fazer uma associação entre duas tabelas: conteudo e categoria - sendo que as duas possuem um campo categ_id para que seja feita a associação. As duas sintex sql abaixo realizam a mesma coisa:
Com INNER JOIN --------------------------------------------------------
SELECT conteudo.*, categoria.*
FROM conteudo
INNER JOIN categoria ON categoria.categ_id = conteudo.categ_id
-----------------------------------------------------------------------------
Sem INNER JOIN --------------------------------------------------------
SELECT conteudo.*, categoria.*
FROM conteudo, categoria
WHERE conteudo.categ_id = categoria.categ_id
-----------------------------------------------------------------------------
Agora, se funciona da mesma forma e no caso de associação entre três ou mais tabelas é muito mais simples sem o INNER JOIN (no caso de trabalhar com o Access) então qual a finalidade de se usar o INNER JOIN?
[]'s
Por Que Usar O Inner Join?
Started By Foxn, 21/06/2004, 10:34
4 replies to this topic
#1
Posted 21/06/2004, 10:34
<?php $Nome = "Renato B. Pacheco"; $Ocupacao = "Programador PHP"; $Ocupacao .= "<br /> Programador ASP"; $Ocupacao .= "<br /> Programador Action Script"; $Localizacao = "São Paulo - SP - Brasil" ?>
#2
Posted 21/06/2004, 11:26
Os comandos SQL seguem padrões, e o ACCESS segue o padrão SQL/92, porém, as versões mais recentes tentam sempre manter a compatibilidade com versões mais antigas, isso faz com que 2 comandos diferentes façam a mesma coisa.
Link relacionado (um pequeno histórico):
http://www.eistec.hp...r/sqldelphi.htm
Link relacionado (um pequeno histórico):
http://www.eistec.hp...r/sqldelphi.htm
------
Mero mortal!
Mero mortal!
#3
Posted 21/06/2004, 11:47
Valeu pela explicação, vou dar uma olhada no texto que você passou. Agora um cara me dizer que se usa só por que é padrão (que foi o que me disseram) é totalmente inaceitável.
Valeu.
Complemento:
Acho que vocês não entenderam o lance do padrão, olha só:
P: Porque usar INNER JOIN?
R: Por que é padrão.
------------------------------------------------
P: Porque usar INNER JOIN?
R: Os comandos SQL seguem padrões, e o ACCESS segue o padrão SQL/92, porém, as versões mais recentes tentam sempre manter a compatibilidade com versões mais antigas, isso faz com que 2 comandos diferentes façam a mesma coisa.
------------------------------------------------
Pequena diferença não é.
[]'s
Valeu.
Complemento:
Acho que vocês não entenderam o lance do padrão, olha só:
P: Porque usar INNER JOIN?
R: Por que é padrão.
------------------------------------------------
P: Porque usar INNER JOIN?
R: Os comandos SQL seguem padrões, e o ACCESS segue o padrão SQL/92, porém, as versões mais recentes tentam sempre manter a compatibilidade com versões mais antigas, isso faz com que 2 comandos diferentes façam a mesma coisa.
------------------------------------------------
Pequena diferença não é.
[]'s
Edição feita por: Foxn, 21/06/2004, 12:34.
<?php $Nome = "Renato B. Pacheco"; $Ocupacao = "Programador PHP"; $Ocupacao .= "<br /> Programador ASP"; $Ocupacao .= "<br /> Programador Action Script"; $Localizacao = "São Paulo - SP - Brasil" ?>
#4
Posted 21/06/2004, 11:59
É bom trabalharmos com padrões e convenções sim. Se amanhã ou depois vc faltar qualquer outra pessoa poderá trabalhar no sistema/projeto pois o mesmo está definido de forma padronizada sendo fácil a sua interpretação.Valeu pela explicação, vou dar uma olhada no texto que você passou. Agora um cara me dizer que se usa só por que é padrão (que foi o que me disseram) é totalmente inaceitável.
Valeu.
[]'s
Só uma opinião!
www.wvirtu.net - Hospedagem Sites - PHP + MySql + Fantástico - Joomla! pré-instalado
www.joomlaminas.org - Grupo de Usuários Joomla! de Minas Gerais
www.joomlaminas.org - Grupo de Usuários Joomla! de Minas Gerais
#5
Posted 21/06/2004, 11:59
O fato de ser "padrão" quer dizer que aquele mesmo SELECT, por exemplo, vai funcionar em qualquer sistema de banco de dados, seja Oracle, Sybase, MySQL, Access, Interbase, DB2, SQLServer, PostgreSQL, Progress...
Essa é a real vantagem de ser padrão. Mas quando esta programando, é muito complicado seguir padrões, sempre precisa-se de uma função para fazer isso ou uma para fazer aquilo, e, muitas vezes, aquela função só existe naquele banco de dados.
Porém, muitos também seguem vários padrões. Isso compatibiliza ainda mais os comandos, pelo menos, a sintaxe básica dos comandos mais simples costumam ser compativeis, com algumas particularidades aqui ou ali.
No que diz respeito a utilizar INNER JOIN ou não utilizar, isso vai depender exclusivamente do desenvolvedor... pode ser que em alguns casos a solução do problema se de apenas com a utilização de JOINS, mas isso é outra história.
Ideologia:
A peça principal de qualquer projeto é sua documentação.
Essa é a real vantagem de ser padrão. Mas quando esta programando, é muito complicado seguir padrões, sempre precisa-se de uma função para fazer isso ou uma para fazer aquilo, e, muitas vezes, aquela função só existe naquele banco de dados.
Porém, muitos também seguem vários padrões. Isso compatibiliza ainda mais os comandos, pelo menos, a sintaxe básica dos comandos mais simples costumam ser compativeis, com algumas particularidades aqui ou ali.
No que diz respeito a utilizar INNER JOIN ou não utilizar, isso vai depender exclusivamente do desenvolvedor... pode ser que em alguns casos a solução do problema se de apenas com a utilização de JOINS, mas isso é outra história.
Ideologia:
A peça principal de qualquer projeto é sua documentação.
------
Mero mortal!
Mero mortal!
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)