jose.rob.jr Postado Julho 15, 2009 Denunciar Share Postado Julho 15, 2009 Sinceramente, não consigo entender...SELECT a.*, b.* FROM a LEFT JOIN b ON a.common_id = b.common_id WHERE b.something = 1 Não vai dar exatamente na mesma coisa que a sql abaixo? SELECT a.*,b.* FROM a, b WHERE a.common_id = b.common_id AND b.something = 1Qual é a vantagem de usar o join? :wacko: Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Julho 15, 2009 Denunciar Share Postado Julho 15, 2009 Oi, 'jose.rob.jr'!...Não vai dar exatamente na mesma coisa que a sql abaixo?...Não. Não vai. o LEFT JOIN retorna todas as linhas que existirem na tabela da esquerda (no seu caso a tabela "a") e todas as linhas da tabela da direita (tabela "b") que estiverem associadas a tabela "a". Se não houver correspondente na tabela da direita (a tabela "b") ele vai trazer nulo para poder completar o resultado.Assim, igmagine as tabelas "a" e "b" como sendo as tabelas donos de carro e carros, respectivamente:tabela a id | nome 01 | joao 02 | maria 03 | jose tabela b id | id_a | carro 01 | 01 | gol 02 | 03 | palio Se eu fizer o select com left join, terei:SELECT nome, carro FROM a LEFT JOIN b ON b.id_a = a.id Teremos como resultado nome | carro joao | gol maria | jose | palio A forma como você representou o seu segundo sql em SELECT a.*,b.* FROM a, b WHERE a.common_id = b.common_id AND b.something = 1 É a forma de representação equivalente ao INNER JOIN que é diferente do LEFT JOIN. No INNER JOIN só serão retornadas as linhas que existirem em ambas as tabelas. Usando o exemplo acima modificado para INNER JOIN, teremos:SELECT nome, carro FROM a INNER JOIN b ON b.id_a = a.id como resultado nome | carro joao | gol jose | palioComo resposta a sua segunda pergunta em Qual é a vantagem de usar o join? temos a clareza de código e facilitar o motor do MySQL na resolução da instrução SQL como os principais benefícios do uso do JOIN. Link para o comentário Compartilhar em outros sites More sharing options...
0 jose.rob.jr Postado Julho 18, 2009 Autor Denunciar Share Postado Julho 18, 2009 Ah, sim, entendi :)Mais uma vez, obrigado :D Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jose.rob.jr
Sinceramente, não consigo entender...
Não vai dar exatamente na mesma coisa que a sql abaixo?Qual é a vantagem de usar o join? :wacko:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados