12

What does STRAIGHT_JOIN do in this code ?

SELECT  STRAIGHT_JOIN ClosingBalance    
FROM   Accounts 
WHERE idAccounts = FidDebit;
Haim Evgi
  • 123,187
  • 45
  • 217
  • 223
Charles Faiga
  • 11,665
  • 25
  • 102
  • 139

2 Answers2

17

STRAIGHT_JOIN is intended as an instruction to the MySQL query optimiser that the tables must be joined from left to right in the order they are listed in the query.

http://dev.mysql.com/doc/refman/5.0/en/join.html

As you only have one table in this query, it wouldn't appear to be doing anything.

ChrisThomas123
  • 2,578
  • 4
  • 23
  • 20
4

From here:

STRAIGHT_JOIN is similar to JOIN, except that the left table is always read before the right table. This can be used for those (few) cases for which the join optimizer puts the tables in the wrong order.

schnaader
  • 49,103
  • 10
  • 104
  • 136