Originally posted by: brandonb
You are using a join, Alex.
Its just that the syntax is different where you are not using the word "Join" in the statement but as far as the server is concerned, when it gets compiled, it will result in the exact same code. Look up SQL ANSI 92 standards. The thing is, the old style of doing joins (as you are doing it) might be discontinued in later versions of your SQL server software. You should really be using a "Join"...
They changed the standards, so technically you are using pre 1992 standards not using the word join.
--- You had
SELECT agendas.id, agendas.nome_agenda, agendas.email, agendas.endereco, agendas.id_cidade, agendas.id_estado, agendas.id_regiao, agendas.fone, agendas.cep, agendas.estado_civil, agendas.salario, agendas.bday, cidades.nome_cidade, estados.nome_estado, regioes.nome_regiao FROM agendas, estados, cidades, regioes WHERE agendas.id_cidade = cidades.id AND agendas.id_estado = estados.id AND agendas.id_regiao = regioes.id ORDER BY nome_agenda
Is the exact same as
SELECT agendas.id, agendas.nome_agenda, agendas.email, agendas.endereco, agendas.id_cidade, agendas.id_estado, agendas.id_regiao, agendas.fone, agendas.cep, agendas.estado_civil, agendas.salario, agendas.bday, cidades.nome_cidade, estados.nome_estado, regioes.nome_regiao FROM agendas
INNER JOIN estados ON agendas.id_estado = estados.id
INNER JOIN cidades ON agendas.id_cidade = cidades.id
INNER JOIN regioes ON agendas.id_regiao = regioes.id
ORDER BY nome_agenda
----
Now lets say you add in a subquery. Now with a join, it looks alot better:
SELECT agendas.id, agendas.nome_agenda, agendas.email, agendas.endereco, agendas.id_cidade, agendas.id_estado, agendas.id_regiao, agendas.fone, agendas.cep, agendas.estado_civil, agendas.salario, agendas.bday, cidades.nome_cidade, estados.nome_estado, regioes.nome_regiao, SubQuery1.something FROM agendas
INNER JOIN estados ON agendas.id_estado = estados.id
INNER JOIN cidades ON agendas.id_cidade = cidades.id
INNER JOIN regioes ON agendas.id_regiao = regioes.id
LEFT JOIN
(
SELECT agendas.id
agendas.something
FROM agendas
WHERE agendas.email = 'bill@microsoft.com'
) AS Subquery1 ON Subquery1.id = agendas.id
ORDER BY nome_agenda