http://qs1969.pair.com?node_id=284480

Cody Pendant has asked for the wisdom of the Perl Monks concerning the following question:

Let me start off by saying this isn't a perl question as such but I hope you'll indulge me

Simple question: can all SQL JOIN statements be expressed either as JOINs or 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?

This all started with my desire to make a database for a TV show here with proper normalisation of what's a kind of three-dimensional structure.

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 n, person n plays role n.

So in order to find out who plays which role in episode one, I can (thanks to Jeffa) do this:

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

but unless I'm completely crazy, I can also do this:

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

which seems to give the same results. I'm asking, to be honest, because I just like that second kind of syntax better.



($_='kkvvttuubbooppuuiiffssqqffssmmiibbddllffss') =~y~b-v~a-z~s; print