tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
Basicamente:
-INNER: mostra apenas os registros q "casam" e aparecem nas duas tabelas.
-LEFT: mostra todos os registros q "casam" da 1a. tabela, mesmo q não estejam na 2a.
-RIGHT: mostra todos os registros q "casam" da 2a. tabela, mesmo q não estejam na 1a.
-FULL: mostra todos os registros q "casam", mesmo estando ele na 1a. e não na 2a., ou estando na 2a. e não na 1a.
http://www.quackit.com/sql/tutorial/sql_join.cfm
Vai clicando "Next Lesson" no final do texto q ele vai dando exemplos de cada um.
Acho q esses links com exemplos tb podem te ajudar a entender:
http://www.w3schools.com/sql/sql_join.asp
http://www.answerbag.com/q_view/19865
PS: Alguém sabe uma tradução melhor q "casam" para a palavra "match"? :-)
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
eyamamoto
Super Participante
Registrado
865 Mensagens
13 Curtidas
E quanto a o exemplo:
left outer join
right outer join
é parecido , mas em vez de fazer a junção na 1ª tabela, pega na anterior ou na outra tabela (próxima)???
icefusion
Tô em todas
Registrado
2.2K Mensagens
41 Curtidas
Seguinte:
considere as tabelas
tabela 1
tb1campo 1 -> chave primária
tb1campo 2
tabela 2
tb1campo 1 -> chave estrangeira
tb2campo 1 -> chave primrária
tb2campo 2
exemplo
tabela 1
tb1campo 1 tb1campo 2
1 joão
2 josé
tabela 2
tb1campo 1 tb2campo 1 tb2campo 2
1 1 São Paulo
2 Rio de Janeiro
[CODE=rich]
SELECT tb1campo 1, tb1campo 2, tb2campo 1 tb2campo 2 FROM TABELA1
INNER JOIN TABELA2 ON TABELA1.TB1CAMPO 1 = TABELA2.TB2CAMPO 2
[/CODE]
acontece o seguinte neste caso! O select vai retornar todos os registros que o valor consta tanto na tabela1 como na tabela 2...
por exemplo se fosse fazer isso nessa tabela acima retornaria apenas
1 registro q seria...o outro registro não apareceria pq o seu valor de seus campos não está constando nas duas tabelas..
1 joão 1 São Paulo
[CODE=rich]
SELECT tb1campo 1, tb1campo 2, tb2campo 1 tb2campo 2 FROM TABELA1
LEFT JOIN TABELA2 ON TABELA1.TB1CAMPO 1 = TABELA2.TB2CAMPO 2
[/CODE]
neste segundo caso mostra todos os registros da primeira tabela mesmo q os mesmos não tenham valor registrado na segunda tabela...
então retornaria!!
1 joão 1 São Paulo
2 josé
[CODE=rich]
SELECT tb1campo 1, tb1campo 2, tb2campo 1 tb2campo 2 FROM TABELA1
RIGHT JOIN TABELA2 ON TABELA1.TB1CAMPO 1 = TABELA2.TB2CAMPO 2
[/CODE]
neste segundo caso mostra todos os registros da segunda tabela mesmo q os mesmos não tenham valor registrado na primeira tabela...
então retornaria!!
1 joão 1 São Paulo
2 Rio de Janeiro