我正在使用2个功能。第一个函数提取以下信息:
$availcourse = "SELECT * FROM organization_courses oc left join course c on oc.courseid=c.id WHERE organizationid=$orgid ORDER By category";
$aresults = mysql_query($availcourse);
第二个函数提取此信息:
$depcourse = "SELECT * FROM organization_dep_courses odc left join course c on odc.courseid=c.id WHERE depid=$departmentid ORDER By category";
$dcresults = mysql_query($depcourse);
我的问题是,如果函数#2中的记录相同,我将如何保留函数#1中的记录?两个结果中明显的相似之处将是路线
我希望这是有道理的。
答案 0 :(得分:2)
如果organization_courses
和organization_dep_courses
具有相同的列数且列的顺序相同,则可以使用MySQL的UNION
。
$query = '
SELECT *
FROM (
(SELECT *
FROM organization_courses oc
LEFT JOIN course c ON oc.courseid = c.id
WHERE organizationid = $orgid)
UNION
(SELECT *
FROM organization_dep_courses odc
LEFT JOIN course c ON odc.courseid = c.id
WHERE depid = $departmentid)
) q
GROUP BY q.courseid
ORDER BY q.category
';
注意:您的SQL代码容易受到SQL Injection的攻击。</ p>