Mysql 4到5查询转换 - 加入头痛

时间:2013-03-13 09:57:45

标签: mysql join mysql-5.5 mysql4

如果有人可以帮我改写我的查询以在mysql 5中工作,我将非常感激。如果任何人都可以提供指向如何重写旧查询的简单实用教程的链接。

我当前的(版本4)查询如下所示:

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

1 个答案:

答案 0 :(得分:0)

简单地替换

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

通过

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
...

关于您的错误消息,您确定course.course_id存在吗?也许它被course.course_code取代了?