سؤال

If anyone can help me rewrite my query to work in mysql 5 I would be very grateful. If anyone can provide links to solid, simple tutorials on how to rewrite old queries that would also be great.

My current (version 4) query looks like this:

SELECT
 course.course_code,
 course.course_title_sv AS course_title,
 course.course_u_credits,
 course.course_successive_level_scb_id,
 s.successive_level_scb_order,
 s.successive_level_scb_code,
 LEFT (education_level.edu_level_name_sv, 1) AS course_edu_level, course.course_level, 
 GROUP_CONCAT(DISTINCT h.head_area_hv_title_sv SEPARATOR ', ') AS head_area_hv
FROM
 course, course_event, course_event_package_links, package, education_level
LEFT JOIN
 course_has_head_area_hv ON(course.course_id = course_has_head_area_hv.course_id)
LEFT JOIN
 head_area_hv h ON(h.head_area_hv_id = course_has_head_area_hv.head_area_hv_id)
LEFT JOIN
 successive_level_scb s ON(s.successive_level_scb_id = course.course_successive_level_scb_id)
WHERE
 course.course_edu_level=education_level.edu_level_id AND
 course.course_id=course_event.course_id AND
 course_event.course_event_id=course_event_package_links.course_event_id AND
 course_event_package_links.package_id=package.package_id AND
 course.course_successive_level_scb_id != '' AND
 package.package_id='6318'
GROUP BY course.course_id
هل كانت مفيدة؟

المحلول

Simply replace

SELECT ... 
FROM course, course_event, course_event_package_links
...
WHERE course.course_id=course_event.course_id 
AND course_event.course_event_id=course_event_package_links.course_event_id

by

SELECT ...
FROM course
JOIN course_event ON course_event.course_id = course.course_id
JOIN course_event_package_links 
  ON course_event_package_links.course_event_id = course_event.course_event_id
...

About your error message, are you sure course.course_id exists? Maybe it was replaced by course.course_code?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top