Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MYSQL - What does STRAIGHT_JOIN do in this code?

Tags:

join

mysql

What does STRAIGHT_JOIN do in this code ?

SELECT  STRAIGHT_JOIN ClosingBalance    
FROM   Accounts 
WHERE idAccounts = FidDebit;
like image 307
Charles Faiga Avatar asked Nov 24 '08 09:11

Charles Faiga


2 Answers

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.

like image 129
ChrisThomas123 Avatar answered Nov 13 '22 13:11

ChrisThomas123


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.

like image 35
schnaader Avatar answered Nov 13 '22 13:11

schnaader