I’m going to buck the pervasive mentality here and ask the question:
Why shouldn’t dba.stackexchange.com include basic SQL questions?
Previous related discussions:
- How do we define a question as being "too basic"? Where do we draw the line?
- Beginner's questions (convert Access queries and such)
- What kind of questions are allowed on database administrators?
In the last question, the “Database Queries” entry was up-voted 14x, yet Jeff Atwood commented that we should only allow those that are “ninja-level extremely complicated ‘for experts’”.
It could be argued that basic SQL questions are already allowed sometimes from questions like these:
- difference of left join and left outer join
- What is the difference between an INNER JOIN and an OUTER JOIN ?
- SQL from/where or join?
- Difference between GROUP BY B,A and GROUP BY COALESCE(B,A)
- Oracle's left join and where clauses errors
- In Oracle how do I save a sequence.nextval in a variable to be reused in multiple inserts?
- How do I Create Tablespace in Oracle 11g?
- What does `x` stand for in this query?
You may disagree with some of these, but there are many others that could be listed. The point is that they exist. I’m not suggesting that these all get migrated to SO, instead I am suggesting that we stop actively turning others like these away. Here are some reasons why.
Migrating questions to a site with less database specific knowledge may lead to poorer answers. The answer may not account for the larger database scope, may prefer a procedural solution over a more efficient set based approach, may not address platform specific functionality, or may not point out that an advanced database feature could solve the problem.
Database Administrators are sometimes viewed as unable and/or unwilling to entertain SQL questions. This is a stereotype we should actively discourage. In the question How could DBAs be more 'programmer friendly'? the top answers include the phrases “work with me”, “consult the other”, “communicating every step of the way”, “in the middle of the development team”, and “guide developers”. These are things we should be trying to do. By working with those who have simpler SQL questions we can break down the wall between developers and administrators.
The line between a basic SQL question and a more advanced SQL question is sometimes difficult to define and we are requiring the person asking the question who is probably the least qualified in making such a determination to do so. If they guess wrong we “punish” them by migrating their question to another site. This decreases the likelihood of them asking another question here and may prevent others from asking their question at all.
A person asking a question has no way of knowing that their basic question could benefit from an expert answer. A seemingly simple question about a select statement could lead to an answer involving expert level CTE, hierarchical, or analytic functions that solves the same problem in a much more elegant manner. By denying the basic question we deny the expert answer.
Aside from questions that would be closed on any site, the FAQs of StackOverflow, ServerFault, SuperUser, Arqade, Photo, AskUbuntu and Unix make no mention of closing/migrating on-topic questions because they are too basic. Often there is mention of migrating questions to a site with more focused experts (such as from Unix to AskUbuntu), but never to a site with less expert knowledge on the question. Webmasters.SE doesn’t send a user back to SO because their webmaster question is too basic and Security.SE doesn’t send a user back to SO because their security question is too basic.
Some may say that writing SQL is a programming discipline not a database administration discipline and therefore should be on SO. While this may be true, it has no bearing on whether basic SQL should be included on DBA.SE because expert SQL is already allowed.
The same basic SQL question asked on SO and DBA.SE might get a very different accepted answer, yet both are completely accurate and valid given the context. Crypto.SE has a statement similar to this in their FAQ concerning similar questions on Security.SE and Crypto.SE that could get different but valid answers. While correct query results are important to people asking questions on both DBA.SE and SO.SE, a person on this site might have an increased interest in how the the statement would effect the system as a whole.
Imagine a developer is learning SQL and has a question. He hears about DBA.SE and decides to ask here. Either through noticing the FAQ or having his question closed/migrated he is chased away. He then starts asking his questions on SO. After a year or so of asking questions on SO, one day one of his questions is migrated to DBA.SE, a site previously hostile to his questions. Will he be pleased with this change? Will he expect knowledgeable, respectful answers that take him from where he is to a higher level of understanding?
The reason I have heard most for banning basic SQL questions is that we want a site of experts. While this assumption could be addressed head on it should suffice to mention that if it doesn’t prevent experts on SO, it won’t prevent experts on DBA.SE. What sets SE apart is not a high entry threshold for difficult questions, but the engine that drives up the quality of the answers.
Please note, I am not suggesting any of the following:
- Allowing questions that should be closed on any site because they can be easily answered from the documentation or a brief search.
- Allowing programming questions which clearly belong on SO.
- Migrating basic SQL questions on SO here.
I am suggesting the following:
- Remove wording from the site indicating that basic SQL is not allowed. I'm not sure if I would promote it, simply not ban it.
- Stop migrating basic SQL questions to SO.
Please let me know what you think and/or what I am missing. I will not be upset if the community decides to maintain the status quo.