比较两个函数的结果和隐藏结果(如果它们是相同的)

时间:2013-03-31 03:17:09

标签: php mysql

我正在使用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中的记录?两个结果中明显的相似之处将是路线

我希望这是有道理的。

1 个答案:

答案 0 :(得分:2)

如果organization_coursesorganization_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>