perlquestion
Cody Pendant
<P>
Let me start off by saying this isn't a perl question as such but I hope you'll indulge me
<P>
Simple question: can all SQL JOIN statements be expressed either as JOINs <I>or</I> WHERE syntax? In other words, is the syntax "INNER JOIN ON foo = bar" unique, and can do things that can't be done any other way, or is it just a Tim-Toady kind of expression of the same thing?
<P>
This all started with my desire to make a database for a TV show [280571 | here] with proper normalisation of what's a kind of three-dimensional structure.
<P>
So now I have a table of people, a table of roles and a table of episodes, and a fourth table with three numeric columns, which contains the information that in episode <I>n</I>, person <I>n</I> plays role <I>n</I>.
<P>
So in order to find out who plays which role in episode one, I can (thanks to [Jeffa]) do this:
<code>
SELECT people.firstname, people.lastname, role.name
FROM roles
INNER JOIN eps_people_roles
ON
roles.id = eps_people_roles.role
INNER JOIN people
ON
eps_people_roles.person = people.id
WHERE
eps_people_roles.ep = 1
</code>
<P>but unless I'm completely crazy, I can also do this:
<code>
SELECT
people.firstname, people.lastname, role.name
FROM people, roles, eps_people_roles
WHERE (
roles.id = eps_people_roles.role
AND
eps_people_roles.person = people.id
)
AND eps_people_roles.ep = 1
</code>
<P>which seems to give the same results. I'm asking, to be honest, because I just <I>like</I> that second kind of syntax better.
<HR>
<BR>
<blockquote>
<code>
($_='kkvvttuubbooppuuiiffssqqffssmmiibbddllffss')
=~y~b-v~a-z~s; print
</code>
</blockquote>