On 1/15/2011 02:07, Jørn Dahl-Stamnes wrote:
> On Saturday 15 January 2011 00:28, Johnny Withers wrote:
>> The result of your query without the join
>> probably exceeded your tmp_table_size variable. When this
>> occurs, MySQL quit writing the temp table to disk thus producing an
>> incorrect table file. (I think).
> Yes, part of this was my fault (the missing join) but I still wonder why the
> server processed the query. Would it not be more appropriate with an error
> message saying that this query contain an error?
The error was only logical. The SQL syntax was fine. The MySQL server
has no other way to gauge the accuracy of what you intended the query to
for example, this is perfectly legal SQL:
SELECT * FROM table1, table2;
Even if you had used explicit JOIN operators, the use of an ON clause is
still optional. Here is my same example rewritten to use the JOIN operator.
SELECT * FROM table1 INNER JOIN table2;
Again, this is a perfectly legal statement, even if it may not make
logical sense in the context of your application or data to leave out
the joining criteria.
MySQL Principal Technical Support Engineer
Oracle USA, Inc.
Office: Blountville, TN