> Invalid refutation, I said "if you used an RDBMS and ". That "and" was a boolean and.
Valid refutation. You can use an RDBMS without making use of most of its facilities, and indeed, that is the typical usage case.
You can easily have a non-trivial app which makes what you'd probably consider trivial usage of a database.
> someone claiming knowledge of an RDBMS and not knowing how to do a simple join across two tables is like someone claiming to be an expert in c and not knowing how to write a for loop (let alone use pointers)..
You're mixing up "working knowledge of SQL" with "expert knowledge of RDBMSes". I agree I am nowhere close to an RDBMS expert. However, I can use SQL, which was the point of the original post.
> after claiming to have worked with RDBMS for ages
Something is wrong in your mental model of my description. I used MySQL for years, starting many years ago. I did not say I was an expert in RDBMSes, or used advanced functionality in any sense, and I said the join functionality was done at the application level. My usage of SQL was basic, but I have a working knowledge of it. If there's something I need but don't know, I can read the docs and do it.
> it would take what, one day of reading a basic book on SQL to understand what a join is and formulate a query?
Reading an SQL book doesn't mean you're going to recall the syntax, until you have written queries a number of times by hand. I agree it is not complicated. I do not agree that asking someone to write a JOIN tells you anything about WHY they can't do it.
> The danger of NOT using a quick and easy litmus test is that all kinds of idiots get through to your personal interview stage
You'd probably filter out Pete Norvig, and Linus, and who knows how many other expert programmers, if you asked them to write an SQL join off the top of their head.
"You're mixing up "working knowledge of SQL" with "expert knowledge of RDBMSes. I agree I am nowhere close to an RDBMS expert. However, I can use SQL, which was the point of the original post."
Hmm you seem to be laboring under a concept that to know how to join two tables you need to be an RDBMS "expert" and "working knowledge" is not sufficient.
On the contrary, if you can't join two tables with SQL, you don't have any "working knowledge of SQL". Neither can you "use SQL" worth a damn. Every answer you make exposes the hollowness of your supposed "working knowledge"!
"However, I can use SQL"
Sure, as long as you query single tables (and do joins "at the application level") ;-)
> Hmm you seem to be laboring under a concept that to know how to join two tables you need to be an RDBMS "expert"
You're misreading. You kept bringing up the point of "expert" knowledge (e.g. in C and for-loops), or knowledge of RDBMSes, and saying you couldn't know X without also knowing Y.
As the question was about SQL, NOT RDBMSes or "expert"-level knowledge of SQL or RDBMSes, I pointed that out.
> On the contrary, if you can't join two tables with SQL, you don't have any "working knowledge of SQL".
Depends on what "can't" you're talking about. I can look it up and then do it. A lot of people don't remember the syntax. Obviously anyone with working knowledge CAN do a join; the question was whether they could tell you how to do it off the top of their head.
Even things you've used a lot, if you haven't used them recently, you'd likely slip up in an interview.
> Every answer you make exposes the hollowness of your supposed "working knowledge"!
Not really. I can make things work (hence "working knowledge") and look up what I don't know and use it right away.
I've been using in-memory databases and of course the equivalent of a JOIN is a basic function but it's not an SQL JOIN.
Valid refutation. You can use an RDBMS without making use of most of its facilities, and indeed, that is the typical usage case.
You can easily have a non-trivial app which makes what you'd probably consider trivial usage of a database.
> someone claiming knowledge of an RDBMS and not knowing how to do a simple join across two tables is like someone claiming to be an expert in c and not knowing how to write a for loop (let alone use pointers)..
You're mixing up "working knowledge of SQL" with "expert knowledge of RDBMSes". I agree I am nowhere close to an RDBMS expert. However, I can use SQL, which was the point of the original post.
> after claiming to have worked with RDBMS for ages
Something is wrong in your mental model of my description. I used MySQL for years, starting many years ago. I did not say I was an expert in RDBMSes, or used advanced functionality in any sense, and I said the join functionality was done at the application level. My usage of SQL was basic, but I have a working knowledge of it. If there's something I need but don't know, I can read the docs and do it.
> it would take what, one day of reading a basic book on SQL to understand what a join is and formulate a query?
Reading an SQL book doesn't mean you're going to recall the syntax, until you have written queries a number of times by hand. I agree it is not complicated. I do not agree that asking someone to write a JOIN tells you anything about WHY they can't do it.
> The danger of NOT using a quick and easy litmus test is that all kinds of idiots get through to your personal interview stage
You'd probably filter out Pete Norvig, and Linus, and who knows how many other expert programmers, if you asked them to write an SQL join off the top of their head.