Sajith A wrote:
EXPLAIN SELECT qb_test_result.id resultId, qb_question.testId AS
testId, qb_test.title testName, qb_question.marks, qb_test.passrate,
qb_test_result.marks testMark, qb_test_result.percentage
testPercentage, qb_test_result.startTime, qb_test_result.endTime,
qb_test_result.status
FROM qb_test_result, qb_test_result_details, qb_test, qb_question
WHERE qb_test_result.id = qb_test_result_details.resultId
AND qb_test_result.testId = qb_test.id
AND qb_test.companyId =1
AND qb_test.author = '2'
AND qb_test_result_details.questionId = qb_question.id
+------------------------+--------+-----------------------+----------+---------+-----------------------------------+------+-------------+
| table | type | possible_keys | key |
key_len | ref | rows | Extra |
+------------------------+--------+-----------------------+----------+---------+-----------------------------------+------+-------------+
| qb_test_result | ALL | PRIMARY,testStudent | NULL |
NULL | NULL | 2494 | |
| qb_test_result_details | ref | resultId | resultId |
4 | qb_test_result.id | 45 | |
| qb_test | eq_ref | PRIMARY,companyAuthor | PRIMARY |
2 | qb_test_result.testId | 1 | Using where |
| qb_question | eq_ref | PRIMARY | PRIMARY |
4 | qb_test_result_details.questionId | 1 | |
+------------------------+--------+-----------------------+----------+---------+-----------------------------------+------+-------------+
Thank you
Sajith A
Try using straight joins to force MySQL to join from qb_test_result first.
The order chosen by the optimizer has no use for keys from this table.
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]