2015-06-03 4 views
0
SELECT s.enrollment_id , s.first_name ,s.last_name, 
    s.nic, d.description_short, s.fee_pkg, sch.school_id, 
     p.program_id, se.session_id, s.date_of_birth, s.gender, 
     dis.description discount, s.final_pkg, s.installment_amount, 
     ins.installment_plan, s.father_name, s.mobile, s.landline, 
     s.email, cump.campus_name, city.city_name, s.country_id, 
     s.province 
    FROM ums_student s , ums_departments d , 
     ums_schools sch, ums_programs p, 
     ums_sessions se, ums_discount_type dis, 
     ums_inst_plan ins, ums_campus cump , 
     ums_city city 
     LEFT JOIN ums_departments ON d.id=s.department_id and 
     LEFT JOIN ums_schools ON sch.school_id=s.school_id and 
     LEFT JOIN ums_programs ON p.program_id=s.program_id and 
     LEFT JOIN ums_sessions ON se.session_id=s.session_id and 
     LEFT JOIN ums_discount_type ON dis.discount_id=s.discount and 
     LEFT JOIN ums_inst_plan ON ins.id=s.installment_plan and 
     LEFT JOIN ums_campus ON cump.id=s.campus_id and 
     LEFT JOIN ums_city ON city.id=s.city_id; 

я пытаюсь этот запрос и получить эту ошибкуMysql ошибка в MySQL

Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOIN ums_programs ON p.program_id=s.program_id and 
      LEFT JOIN ums_sessions O' at line 14 

плз помочь мне.

ответ

0

Вам не нужно - и не может быть - and перед каждым LEFT JOIN. Удалите and с. Кроме того, вам не нужно перечислять таблицы перед выполнением JOIN. Таким образом, вы фактически являетесь JOIN в каждой таблице дважды, один раз как CROSS JOIN, что является крайне неэффективным.

Ваш SQL должен выглядеть следующим образом:

SELECT s.enrollment_id , s.first_name ,s.last_name, 
    s.nic, d.description_short, s.fee_pkg, sch.school_id, 
    p.program_id, se.session_id, s.date_of_birth, s.gender, 
    dis.description discount, s.final_pkg, s.installment_amount, 
     ins.installment_plan, s.father_name, s.mobile, s.landline, 
     s.email, cump.campus_name, city.city_name, s.country_id, 
     s.province 
FROM ums_student s 
    LEFT JOIN ums_departments d ON d.id=s.department_id 
    LEFT JOIN ums_schools sch ON sch.school_id=s.school_id 
    LEFT JOIN ums_programs p ON p.program_id=s.program_id 
    LEFT JOIN ums_sessions se ON se.session_id=s.session_id 
    LEFT JOIN ums_discount_type dis ON dis.discount_id=s.discount 
    LEFT JOIN ums_inst_plan ins ON ins.id=s.installment_plan 
    LEFT JOIN ums_campus cump ON cump.id=s.campus_id 
    LEFT JOIN ums_city city ON city.id=s.city_id; 
0

Вы должны удалить конец афер всех предложений о присоединении. Здесь не существует.

SELECT s.enrollment_id , s.first_name ,s.last_name, 
    s.nic, d.description_short, s.fee_pkg, sch.school_id, 
     p.program_id, se.session_id, s.date_of_birth, s.gender, 
     dis.description discount, s.final_pkg, s.installment_amount, 
     ins.installment_plan, s.father_name, s.mobile, s.landline, 
     s.email, cump.campus_name, city.city_name, s.country_id, 
     s.province 
    FROM ums_student s , ums_departments d , 
     ums_schools sch, ums_programs p, 
     ums_sessions se, ums_discount_type dis, 
     ums_inst_plan ins, ums_campus cump , 
     ums_city city 
     LEFT JOIN ums_departments ON d.id=s.department_id 
     LEFT JOIN ums_schools ON sch.school_id=s.school_id 
     LEFT JOIN ums_programs ON p.program_id=s.program_id 
     LEFT JOIN ums_sessions ON se.session_id=s.session_id 
     LEFT JOIN ums_discount_type ON dis.discount_id=s.discount 
     LEFT JOIN ums_inst_plan ON ins.id=s.installment_plan 
     LEFT JOIN ums_campus ON cump.id=s.campus_id 
     LEFT JOIN ums_city ON city.id=s.city_id;