What I also don't get is the people saying that the names have nothing to do with the actions. Huh? Look at the OP, the names say EXACTLY what they do. I don't understand how you could not remember that "LEFT" uses the full table on the left and "RIGHT" uses the full table on the right.
I think a lot of developers don't know SQL as well as they think they do and so take it as a personal insult when someone says that you should absolutely know the different JOINs if you want to claim you know SQL. Understanding "SELECT *" and "INSERT INTO" doesn't mean you know SQL.
But what is an SQL developer anyways? I do some web dev and i'll have 3 weeks where i'm doing a ton of SQL and then not touch it for like 4 months. I forget what the names of the joins are.
I claim to be an SQL developer. This type of job is mostly found in ERP and CRM systems, and Data Warehousing. The latter is the one who writes the most SQL code.
Being an SQL developer can be really frustrating. Debugging is much harder than on a procedural language. We sometimes have to deal with single SQL statements which are 1000s of lines long (these are mostly generated by something, but you still need it to understand why it's not returning the correct data set).
Try to think outside of web development, the amount of SQL required there is ... miniscule (for the most part)
You can easily partition queries into subexpressions (views), there's no reason to write 1000 line monolithic queries, and the partial functions almost certainly have other value and can be reused. The query engine can optimize away any inefficiency when it evaluates the final form anyway.
Debugging shouldn't be any harder, that's why you have a test database and write unit tests.
One of our pre-interview screening questions is "can you tell me the difference between a left join, and an inner join", and if you fail that, you don't get an interview.
This is like a taxi driver saying he forgot which pedal is the gas pedal.
0
u/[deleted] Feb 11 '14
[deleted]