我正在使用 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);
我的问题是,如果函数 #1 中的记录相同,如何防止它们在函数 #2 中显示?两个结果中明显的相似之处是 courseid
我希望这是有道理的。
最佳答案
如果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 的攻击.
关于php - 比较两个函数的结果,如果相同则隐藏结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725967/